なぜJava11対応が必要になったのか
- CircleCIが用意しているAndroidビルド用Docker Imageが突然Java11になった
- ああもうしゃーないなぁとか思いながらも、変更することにした
- RobolectricがAPI29以降Java9以上必須となっていたので、まあいい機会だと
- Project Structureから使用するJDKを切り替える
- デフォルトはAndroid Studio付属になっている
- build.gradleの構成?によってはProject Structureが開かない不具合があるので、その場合はDefault Project Structureで切り替え、.ideaディレクトリを削除して再度プロジェクトファイルを生成させれば良い
_JAVA_OPTIONSの設定
- 初めて知ったが、
JAVA_OPTIONS
と _JAVA_OPTIONS
は明示的に異なり、通常ユーザー向けのRuntimeは前者を、開発者向けのJDKは後者をロードする
- _JAVA_OPTIONSに
-Djavax.net.ssl.trustStoreType=JKS
を追加する
robolectricの設定
sdk=28
とかで固定を入れている場合、sdk=29
に変更して実行環境を調整
CircleCI設定
circleci/android:api-30
とか切り替えちゃっていいんじゃないかな
dokka設定
- ドキュメントをdokka出力しているなら、バージョンを変更する必要がある
- JDKのClass名が変わったりとかしたので
classpath "org.jetbrains.dokka:dokka-gradle-plugin:1.4.0-rc"
dokkaHtml {
outputFormat = 'javadoc'
outputDirectory = "$buildDir/dokka"
noStdlibLink = true
dokkaSourceSets {
noAndroidSdkLink = true
configureEach {
noStdlibLink = true
noJdkLink = true
noAndroidSdkLink = true
}
}
}
}