階層が深くなって見づらいので、対応するカッコを色付けするプラグインを入れましたが、
👉 IntelliJ IDEA プラグイン「Rainbow Brackets」を使う
つづいてインデントも「Indent Rainbow」で色付けします。
👉 Indent Rainbow - IntelliJ IDEs Plugin | Marketplace
いいんじゃないですかね、とりあえず。
うざくなった捨てます。
階層が深くなって見づらいので、対応するカッコを色付けするプラグインを入れましたが、
👉 IntelliJ IDEA プラグイン「Rainbow Brackets」を使う
つづいてインデントも「Indent Rainbow」で色付けします。
👉 Indent Rainbow - IntelliJ IDEs Plugin | Marketplace
いいんじゃないですかね、とりあえず。
うざくなった捨てます。
Android Gradle プラグインを 8.1.1 にアップデートしたら以下のエラーでビルドできない。
Missing classes detected while running R8. Please add the missing classes or apply additional keep rules that are generated in /app/build/outputs/mapping/debug/missing_rules.txt.
Missing class com.google.protobuf.java_com_google_android_gmscore_sdk_target_granule__proguard_group_gtm_N1281923064GeneratedExtensionRegistryLite$Loader (referenced from: java.util.List kotlinx.coroutines.internal.FastServiceLoader.load(java.lang.Class, java.lang.ClassLoader))
Caused by: [CIRCULAR REFERENCE: com.android.tools.r8.utils.b: Missing class com.google.protobuf.java_com_google_android_gmscore_sdk_target_granule__proguard_group_gtm_N1281923064GeneratedExtensionRegistryLite$Loader (referenced from: java.util.List kotlinx.coroutines.internal.FastServiceLoader.load(java.lang.Class, java.lang.ClassLoader))]
メッセージにある missing_rules.txt
ファイルを確認します。
一度、直上の debug ディレクトリで Reload from Disk
すると現れます。
# Please add these rules to your existing keep rules in order to suppress warnings.
# This is generated automatically by the Android Gradle plugin.
-dontwarn com.google.protobuf.java_com_google_android_gmscore_sdk_target_granule__proguard_group_gtm_N1281923064GeneratedExtensionRegistryLite$Loader
# Please add these rules to your existing keep rules in order to suppress warnings.
# 警告を抑制するには、これらのルールを既存のキープ ルールに追加してください。
ということなので、そのまま proguard-rules.pro
に追加するとビルドできるようになりました!
こんな機能あったのか、と思い調べてみると、AGP 7.0.0 で追加されていたのですね。
AGP は欠落している可能性のあるルールをすべて含むファイルを生成し、app/build/outputs/mapping/release/missing_rules.txt のようなファイルパスに書き込みます。警告を無視するには、proguard-rules.pro ファイルにルールを追加します。
👉 Android Gradle プラグインのリリースノート | Android デベロッパー | Android Developers
ということで R8 による難読化で発生するエラーの特定も簡単になっています。
ますます便利になっていきます Android Studio。
👉 support obfuscating protobuf message fields [144631039] - Visible to Public - Issue Tracker
Gson が R8 で落ちる
👉 https://t.co/Apih2M8s02#android #kotlin pic.twitter.com/3KW8e9TibM— chanzmao (@maochanz) September 10, 2023
2023年8月31日以降 アプリは Android 13(API レベル 33)以降を対象にする必要があります。 https://t.co/uPUeJDr5wW
— chanzmao (@maochanz) August 21, 2023
Version Catalog + libs.versions.toml で説明します。
まず最初に、Android GradlePlugin と API バージョンを確認します。
👉 Android Studio Flamingo | 2022.2.1 | Android Developers
Giraffe | 2022.3.1
AGP 8.1
API 33
これから、
com.android.tools.build.gradle-8.1.0
# libs.versions.toml
[versions]
android-gradle-plugin = "8.1.0"
[plugins]
android-application = { id = "com.android.application", version.ref = "android-gradle-plugin" }
と
// build.gradle (root)
android {
def sdkVersion = 33
compileSdk sdkVersion
defaultConfig {
targetSdk sdkVersion
}
}
が決まります。
また、Kotlin のバージョンを 1.9.0 にあげることができるので、
👉 Compose to Kotlin Compatibility Map | Android Developers
Compose Compiler のバージョンも 1.5.0 にあげることができました。
大きいところで以下の3つをアップグレードすることができました。
[versions]
android-gradle-plugin = "8.1.0"
kotlin = "1.9.0"
compose-compiler = "1.5.0"
少し触った雰囲気、Android Studio Giraffe は、かなり起動やビルド時間が短くなっているように感じます。
👉 【Plugin DSL】Android Gradle Plugin のバージョンを調べる方法
👉 【Plugin DSL】「com.android.tools.build:gradle」の記述は不要?
Android Studio Giraffe 「New UI」の適用はシンプルに設定からできるようになりました。#プログラミング pic.twitter.com/tRScviCf8e
— chanzmao (@maochanz) July 26, 2023