【Flutter】google_mobile_adsを1.2.0にアップデートしたときにビルドエラーが発生した
結果
まず結果として
google_mobile_adsを1.2.0にアップデートし、ビルド自体(flutter build apk)は通りましたが
新たな問題(WARNING)が発生したとこで終了です。
Warning: Mapping new ns http://schemas.android.com/repository/android/common/02 to old ns http://schemas.android.com/repository/android/common/01
Warning: Mapping new ns http://schemas.android.com/repository/android/generic/02 to old ns http://schemas.android.com/repository/android/generic/01
Warning: Mapping new ns http://schemas.android.com/sdk/android/repo/addon2/02 to old ns http://schemas.android.com/sdk/android/repo/addon2/01
Warning: Mapping new ns http://schemas.android.com/sdk/android/repo/repository2/02 to old ns http://schemas.android.com/sdk/android/repo/repository2/01
Warning: Mapping new ns http://schemas.android.com/sdk/android/repo/sys-img2/02 to old ns http://schemas.android.com/sdk/android/repo/sys-img2/01
Warning: Mapping new ns http://schemas.android.com/repository/android/common/02 to old ns http://schemas.android.com/repository/android/common/01
Warning: Mapping new ns http://schemas.android.com/repository/android/generic/02 to old ns http://schemas.android.com/repository/android/generic/01
Warning: Mapping new ns http://schemas.android.com/sdk/android/repo/addon2/02 to old ns http://schemas.android.com/sdk/android/repo/addon2/01
Warning: Mapping new ns http://schemas.android.com/sdk/android/repo/repository2/02 to old ns http://schemas.android.com/sdk/android/repo/repository2/01
Warning: Mapping new ns http://schemas.android.com/sdk/android/repo/sys-img2/02 to old ns http://schemas.android.com/sdk/android/repo/sys-img2/01
����:C:\Users\utouhiyoco\Documents\flutter\.pub-cache\hosted\pub.dartlang.org\launch_review-3.0.1\android\src\main\java\com\iyaffle\launchreview\LaunchReviewPlugin.java�͐�������Ȃ�API���g�p�܂��̓I�[�o�[���C�h���Ă��܂��B
����:�ڍׂ́A-Xlint:deprecation�I�v�V�������w�肵�čăR���p�C�����Ă��������B
����:C:\Users\utouhiyoco\Documents\flutter\.pub-cache\hosted\pub.dartlang.org\path_provider_android-2.0.11\android\src\main\java\io\flutter\plugins\pathprovider\PathProviderPlugin.java�̑���́A���`�F�b�N�܂��͈��S�ł͂���܂���B
����:�ڍׂ́A-Xlint:unchecked�I�v�V�������w�肵�čăR���p�C�����Ă��������B
開発環境
- windows 10
- flutter 2.5.3
- Dart 2.14.4
- android
ざっくり手順
- google_mobile_adsのバージョンアップ
- google_mobile_adsを'1.2.0'に変更
- SDKのバージョンアップ
- compileSdkVersion及び、targetSdkVersionを'31'に変更
- buildToolsVersionを'31.0.0'
- SDKを弄る
- d8.datを'dx.dat'にファイル名変更
- d8.jarを'dx.jar'にファイル名変更
- Kotlinのバージョンアップ
- Kotlinを'1.5.21'に変更
詳しい手順
google_mobile_ads ^0.11.0+2 → 1.2.0 に変更
pubspec.yamlでgoogle_mobile_adsのバージョンを変更
- google_mobile_ads: ^0.11.0+2
+ google_mobile_ads: 1.2.0
に変更し、flutter pub get
SDKのバージョン変更
ここでビルドを一回通してみようとするとエラーが発生した
* What went wrong:
Execution failed for task ':app:checkReleaseAarMetadata'.
> A failure occurred while executing com.android.build.gradle.internal.tasks.CheckAarMetadataWorkAction
> The minCompileSdk (31) specified in a
dependency's AAR metadata (META-INF/com/android/build/gradle/aar-metadata.properties)
is greater than this module's compileSdkVersion (android-30).
Dependency: androidx.work:work-runtime:2.7.0.
AAR metadata file: C:\Users\utouhiyoco\.gradle\caches\transforms-2\files-2.1\014526cbe917f780df005b8a51f68252\work-runtime-2.7.0\META-INF\com\android\build\gradle\aar-metadata.properties.
「てめぇふざけんなよSDK 30だと!?こちとらSDK 31以上じゃねえと動かねえんだよ」
何かよくわかんないけどそのようなことを言ってる気がする
…分かった分かったよ…
compileSdkVersion及び、targetSdkVersionを30 → 31 に変更
android > app > build.gradle
にてSDKのバージョンを変更します
android {
- compileSdkVersion 30
- buildToolsVersion "30.0.2"
+ compileSdkVersion 31
+ buildToolsVersion "31.0.0"
sourceSets {
main.java.srcDirs += 'src/main/kotlin'
}
lintOptions {
disable 'InvalidPackage'
}
defaultConfig {
applicationId "com.minaide.hazukasii"
minSdkVersion 23
- targetSdkVersion 30
+ targetSdkVersion 31
versionCode flutterVersionCode.toInteger()
versionName flutterVersionName
}
ビルドが通らない…
プラグインのバージョンもアップデートして…
SDKのバージョンも合わせたぞ!
これでビルド通るだろ!!!
* What went wrong:
Could not determine the dependencies of task ':app:lintVitalRelease'.
> Could not resolve all dependencies for configuration ':app:lintClassPath'.
> Could not create task ':app:minifyReleaseWithR8'.
> Installed Build Tools revision 31.0.0 is corrupted. Remove and install again using the SDK Manager.
えっ「ビルドツール31.0.0が壊れてるから再インストールして…?」
なんじゃそりゃ…わかったよ…
これで一回Apply
もう一回checkをいれてApply
再インストールしたら、もう一回ビルドすっぞ!
* What went wrong:
Could not determine the dependencies of task ':app:lintVitalRelease'.
> Could not resolve all dependencies for configuration ':app:lintClassPath'.
> Could not create task ':app:minifyReleaseWithR8'.
> Installed Build Tools revision 31.0.0 is corrupted. Remove and install again using the SDK Manager.
_人人人人人人人人人_
> ぴええええええ <
 ̄Y^Y^Y^Y^Y^Y^Y ̄
全く同じ内容の(31壊れてっぞ)エラーを吐いてる…
調べてみると31が難あり?のようで
30にダウングレードすることをひとまず推奨しているようだ。
(特に理由がない場合は、30で良いと思う)
SDKを弄ります
私はどうしても31にしたい頑固者なので、もう少し調べてみるとこちらの記事を発見
SDKの2つのファイルの名前を変更すると、ビルドが通るらしい。
(正直公式SDKを弄るのは気持ち悪い…何か問題が起きたら再インストールしてください)
- d8.bat から dx.bat
- d8.jar から dx.jar
d8.batからdx.bat
C:\Users\”あなたのユーザー名”\AppData\Local\Android\Sdk\build-tools\31.0.0\d8.bat
を
C:\Users\”あなたのユーザー名”\AppData\Local\Android\Sdk\build-tools\31.0.0\dx.bat
に変更
d8.jar から dx.jar
C:\Users\”あなたのユーザー名”\AppData\Local\Android\Sdk\build-tools\31.0.0\lib\d8.jar
を
C:\Users\”あなたのユーザー名”\AppData\Local\Android\Sdk\build-tools\31.0.0\lib\dx.jar
に変更
※注意 lib下
Kotlinのバージョンアップ
ビルドするとまたしてもエラー
今度はKotlin関連で怒られてます
Execution failed for task ':app:compileReleaseKotlin'.
素直にバージョンアップしましょう。
古いflutterでパッケージを作成すると、その辺のバージョンも古いようです。
android > build.gradle
- ext.kotlin_version = '1.3.50'
+ ext.kotlin_version = '1.5.21'
最後
一度クリーンしたあとにビルドしてみます
flutter clean
flutter build apk
Warning: Mapping new ns http://schemas.android.com/repository/android/common/02 to old ns http://schemas.android.com/repository/android/common/01
Warning: Mapping new ns http://schemas.android.com/repository/android/generic/02 to old ns http://schemas.android.com/repository/android/generic/01
Warning: Mapping new ns http://schemas.android.com/sdk/android/repo/addon2/02 to old ns http://schemas.android.com/sdk/android/repo/addon2/01
Warning: Mapping new ns http://schemas.android.com/sdk/android/repo/repository2/02 to old ns http://schemas.android.com/sdk/android/repo/repository2/01
Warning: Mapping new ns http://schemas.android.com/sdk/android/repo/sys-img2/02 to old ns http://schemas.android.com/sdk/android/repo/sys-img2/01
Warning: Mapping new ns http://schemas.android.com/repository/android/common/02 to old ns http://schemas.android.com/repository/android/common/01
Warning: Mapping new ns http://schemas.android.com/repository/android/generic/02 to old ns http://schemas.android.com/repository/android/generic/01
Warning: Mapping new ns http://schemas.android.com/sdk/android/repo/addon2/02 to old ns http://schemas.android.com/sdk/android/repo/addon2/01
Warning: Mapping new ns http://schemas.android.com/sdk/android/repo/repository2/02 to old ns http://schemas.android.com/sdk/android/repo/repository2/01
Warning: Mapping new ns http://schemas.android.com/sdk/android/repo/sys-img2/02 to old ns http://schemas.android.com/sdk/android/repo/sys-img2/01
����:C:\Users\utouhiyoco\Documents\flutter\.pub-cache\hosted\pub.dartlang.org\launch_review-3.0.1\android\src\main\java\com\iyaffle\launchreview\LaunchReviewPlugin.java�͐�������Ȃ�API���g�p�܂��̓I�[�o�[���C�h���Ă��܂��B
����:�ڍׂ́A-Xlint:deprecation�I�v�V�������w�肵�čăR���p�C�����Ă��������B
����:C:\Users\utouhiyoco\Documents\flutter\.pub-cache\hosted\pub.dartlang.org\path_provider_android-2.0.11\android\src\main\java\io\flutter\plugins\pathprovider\PathProviderPlugin.java�̑���́A���`�F�b�N�܂��͈��S�ł͂���܂���B
����:�ڍׂ́A-Xlint:unchecked�I�v�V�������w�肵�čăR���p�C�����Ă��������B
Running Gradle task 'assembleRelease'... 73.1s
√ Built build\app\outputs\hiyoco-apk\app-release.apk (53.7MB).
げっなんか怒られてる…けどビルド通った…
もう今日はここまでで……力尽きた…けーきたべたい
進展ありましたら、追記します…
同じ問題を抱える方に、少しでも貢献できてたら幸いです…。
Discussion