play-services-base-16.0.1.aar
( mvnrepository ) имеет proguard.txt
со следующим содержанием:
# b/35135904 Ensure that proguard will not strip the mResultGuardian.
-keepclassmembers class com.google.android.gms.common.api.internal.BasePendingResult {
com.google.android.gms.common.api.internal.BasePendingResult$ReleasableResultGuardian mResultGuardian;
}
Но в classes.jar
вы можете видеть, что тип mResultGuardian
уже запутан до BasePendingResult.zaa
. Я думаю, именно поэтому я получаю
Note: the configuration refers to the unknown class 'com.google.android.gms.common.api.internal.BasePendingResult$ReleasableResultGuardian'
Как это должно работать? Я новичок в Proguard и имею только очень базовое понимание того, что происходит, поэтому, пожалуйста, сделайте ваши ответы простыми:)
Детали проекта:
gradlew version: 5.4
build plugin: com.android.tools.build:gradle:3.2.0
К сожалению, сейчас я не могу обновить плагин gradle до 3.3.*
или 3.4.*
, потому что некоторые скрипты несовместимы и требуют значительного рефакторинга.
app/proguard.txt
(из рекомендаций, которые я видел):
-keep class com.google.android.gms.analytics.** { *; }
-keep class com.google.android.gms.gcm.** { *; }
-dontwarn com.google.android.gms.**
Но это не помогает.
UPD
Я заканчиваю тем, что обновляюсь до com.android.tools.build:gradle:3.4.1
(некоторые изменения API должны были быть адаптированы), что решило проблему, но я все еще не понимаю, как это должно работать с такими правилами.