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

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 すると現れます。

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 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.


# 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 hatena-bookmark

ということで R8 による難読化で発生するエラーの特定も簡単になっています。

ますます便利になっていきます Android Studio。

👉 support obfuscating protobuf message fields [144631039] - Visible to Public - Issue Tracker hatena-bookmark



Unresolved reference: BuildConfig

Android Gradle Plugin (AGP) 8.0 以降、BuildConfig ファイルの生成はデフォルトで無効になっており、必要なモジュールに対してのみ手動で有効にする必要があります。

モジュール別であれば、


// build.gradle.kts

android {
  buildFeatures {
    buildConfig = true
  }
}

すべてのモジュールに適用する場合は以下。


# gradle.properties

android.defaults.buildfeatures.buildconfig=true

Unresolved reference: BuildConfig



【iPhone】Yahoo天気アプリ 「現在地ボタンが変わりました」は「現在地ボタンは無くなりました」では?

現在地ボタンが消えた!???

現在地に戻るのボタンが表示されなくなった

バージョンは「9.0.0」

調べてみると、

Yahoo天気アプリの雨雲表示画面で、「現在地ボタンが変わりました」と出ているのですが、どう変わったのかがわかりません。
以前は現在地ボタン(“的”のようなアイコン)があり、そこをタップすると自分の現在地が地図の中心になったのですが、バージョンアップされたものだと現在地ボタンは見当たらず、どうすれば自分の現在地が中心にくるのかわからないです。「現在地ボタンが変わりました」ではなく、「現在地ボタンは無くなりました」のような気がします。
現在地を中心にする方法がわかる方がいれば教えて頂きたいです。

アプリのアップデートで解決しました。
私も半日程悩んでました(−_−;)

👉 Yahoo天気アプリの雨雲表示画面で、「現在地ボタンが変わりました」と出ているのですが、どう変わったのかがわかりません。 - Yahoo!知恵袋 hatena-bookmark

ということで、Yahoo 天気アプリをバージョン「9.0.1」にアップデートします。

表示されるようになりました!!

ということで、

現在地ボタンが表示されなくなったのは、バージョン 9.0.0 のバグ

といったところでしょうか。

👉 「Yahoo!天気」をApp Storeで hatena-bookmark