通常将proguard-android-optimize.txt
用作proguard文件。
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-project.txt'
但是,当我浏览proguard-android-optimize.txt
的内容时>
... -keepclassmembers class **.R$* { public static <fields>; } # The support library contains references to newer platform versions. # Don't warn about those in case this app is linking against an older # platform version. We know about them, and they are safe. -dontwarn android.support.** # Understand the @Keep support annotation. -keep class android.support.annotation.Keep -keep @android.support.annotation.Keep class * {*;} -keepclasseswithmembers class * { @android.support.annotation.Keep <methods>; } -keepclasseswithmembers class * { @android.support.annotation.Keep <fields>; } -keepclasseswithmembers class * { @android.support.annotation.Keep <init>(...); }
我想知道,如果该规则仍然适用,我们是否使用AndroidX而不是支持库?我们是否应该在项目
proguard-project.txt
中明确添加以下规则?
# Understand the @Keep support annotation.
-keep class androidx.annotation.Keep
-keep @androidx.annotation.Keep class * {*;}
-keepclasseswithmembers class * {
@androidx.annotation.Keep <methods>;
}
-keepclasseswithmembers class * {
@androidx.annotation.Keep <fields>;
}
-keepclasseswithmembers class * {
@androidx.annotation.Keep <init>(...);
}
通常将proguard-android-optimize.txt用作proguard文件。 proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'),'proguard-project.txt'但是,当我经过...
我刚刚检查了一下,并用androidx.annotation.Keep
注释类保留了它们。无需其他配置。