Kotlinで難読化 Proguardでハマった
Kotlinで新しいアプリを開発し、リリースする前に難読化をします。 その際にProguardというツールを使うのですがハマりにハマったので備忘録としてブログに残します。
Can't find common super class - LocationAvailability
エラーの原因はProguardが難読化する際に LocationAvailability
のSuperClassである
AbstractSafeParcelable
が参照できないというもの。
ちなみに gradle
にはFirebaseのサービスを利用するために
apply plugin: 'com.google.gms.google-services'
を使用しており、これが原因です。
proguard-rules.proの設定
設定は以下の様になっています。
-keep class com.google.android.gms.** { *; }
-dontwarn com.google.android.gms.**
-keep class android.app.Activity.** { *; }
-dontwarn android.app.Activity.**
しかし、このままだと AbstractSafeParcelable
を参照しようとするため、エラーです。
( AbstractSafeParcelable
は com.google.android.gms.**
配下にあるのに。。。)
結論
gradle
ファイルに以下を追記します。
dependencies {
...
implementation 'com.google.android.gms:play-services-location:16.0.0'
...
}
これでとりあえず動く様になりました。
0 コメント