FlutterでKotlinとJDKのVerupについて
公開日: 2024-08-09 09:52:17
Flutterで開発中にGoogle様から
・com.google.android.gms:play-services-ads-lite:20.6.0
・com.google.android.gms:play-services-ads:20.6.0
を修正しろといただきました。
この際にJDK(JAVA)の更新とKotlinのVerUPを同時に行ったのですが、少し苦戦したのでまとめておきます。
このJDKとVer、KotlinのVerの不一致がエラーを引き起こすようで、理解するまでに時間がかかりました。
pubspec.yaml
dependencies:
flutter:
sdk: flutter
provider: ^6.0.0
http: ^0.13.3
url_launcher: ^6.0.9
- google_mobile_ads: ^1.0.0+1 // 旧
+ google_mobile_ads: ^5.1.0 // 新
shared_preferences: ^2.0.13
- package_info_plus: ^3.0.6 // 旧
+ package_info_plus: ^8.0.1 // 新
badges: ^2.0.2
/android/build.gradle
buildscript {
- ext.kotlin_version = '1.8.22' // Kotlinのバージョン 旧
+ ext.kotlin_version = '1.9.20' // Kotlinのバージョン 新
repositories {
google()
mavenCentral()
}
dependencies {
- classpath 'com.android.tools.build:gradle:8.0.2' // Android Gradle Pluginのバージョン 旧
+ classpath 'com.android.tools.build:gradle:8.5.1' // Android Gradle Pluginのバージョン 新
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}
}
/android/gradle.properties
android.useAndroidX=true
android.enableJetifier=true
kotlin.code.style=official
-kotlin_version=1.8.22 // 旧
+kotlin_version=1.9.20 // 新
android.suppressUnsupportedCompileSdk=34
\ No newline at end of file
/android/settings.gradle
plugins {
id "dev.flutter.flutter-plugin-loader" version "1.0.0"
- id "com.android.application" version "7.3.0" apply false // 旧
+ id "com.android.application" version "8.1.0" apply false // 新
- id "org.jetbrains.kotlin.android" version "1.7.10" apply false // 旧
+ id "org.jetbrains.kotlin.android" version "1.9.20" apply false // 新
}
/android/app/build.gradle
plugins {
id "com.android.application"
id "kotlin-android"
- id "kotlin-android-extensions" // 廃止
+ id "kotlin-parcelize" // 新
id "dev.flutter.flutter-gradle-plugin"
}
android {
namespace 'com.musictheater.SampleBulletinBoard'
compileSdk flutter.compileSdkVersion
ndkVersion flutter.ndkVersion
+ viewBinding { // 追加
+ enabled = true
+ }
+
compileOptions {
- sourceCompatibility JavaVersion.VERSION_1_8 // 旧
+ sourceCompatibility JavaVersion.VERSION_17 // 新
- targetCompatibility JavaVersion.VERSION_1_8 // 旧
+ targetCompatibility JavaVersion.VERSION_17 // 新
}
kotlinOptions {
- jvmTarget = '1.8' // 旧
+ jvmTarget = '17' // 新
+ }
+
+ // JVM Toolchainの設定 追加
+ java {
+ toolchain {
+ languageVersion = JavaLanguageVersion.of(17)
+ }
}
JAVAのパッケージのダウンロード
https://adoptium.net/temurin/archive/?version=17
今回はVer17をダウンロードしましたが、対象のVerのインストーラーをダウンロードしてください。
インストールに関しては、ダウンロードしたものを実行したらPathの変更もせず、初期設定で大丈夫でした。
現在使用しているシェルがBashかZshかを確認する
echo $SHELL
環境変数の設定
JAVA_HOME環境変数を設定します。
nano ~/.zshrc // Zshを使用時
nano ~/.bash_profile // Bashを使用時
NanoEditorが立ち上がるので、こちらの行を追加する
export JAVA_HOME=/Library/Java/JavaVirtualMachines/temurin-17.jdk/Contents/Home
export PATH=$JAVA_HOME/bin:$PATH

変更を保存して閉じる:
nanoエディタでの保存方法:
Ctrl + O を押してから Enter を押して保存。
Ctrl + X を押してエディタを閉じる。
変更を適用する
source ~/.zshrc // Zshを使用している場合
source ~/.bash_profile // Bashを使用している場合
設定の確認
以下のコマンドを実行して、JAVA_HOMEが正しく設定されていることを確認します。
echo $JAVA_HOME
java -version
プロジェクトのビルド
flutter clean
flutter pub get
flutter build apk
基本的な流れはこちらのようになります。
対象のKotlinのVerにあったJDKのVerを選択しないとエラーとなるので、そこが3回ほどやり直しました。