Balbas Code

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
jdk_download1

今回は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_editor1



変更を保存して閉じる:


    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回ほどやり直しました。