proguard-rules.pro 似乎不适用于 R8
proguard-rules.pro does not seem to work with R8
我今天早些时候将我的 Android Studio 升级到 3.4,我第一次使用默认的收缩器 R8。我将库项目 proguard-project.txt
的内容复制到它的 proguard-rules.pro
。 proguard-project.txt
这个项目完美地工作,生成了一个供其他应用程序项目使用的 aar 文件。
文件proguard-rules.pro
好像没有被使用。该项目在其 build.gradle
中包含以下内容:
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'),
'proguard-rules.pro'
signingConfig signingConfigs.Release
}
debug {
signingConfig signingConfigs.Debug
}
}
proguard-rules.pro
具有以下内容:
# Preserve all public classes, and their public and protected fields and methods.
-keep public class * {
public protected *;
}
public 方法的名称根本没有保留:
有人可以提供有关如何解决此问题的提示吗?
将此行添加到 gradle.properties
android.enableR8 = true
然后在 proguard-rules.pro
中尝试以下代码
-keep public class ** {
public *;
protected *;
}
编辑 #1
在此处查看如何将 Proguard 迁移到 R8:Android/java: Transition / Migration from ProGuard to R8?
我今天早些时候将我的 Android Studio 升级到 3.4,我第一次使用默认的收缩器 R8。我将库项目 proguard-project.txt
的内容复制到它的 proguard-rules.pro
。 proguard-project.txt
这个项目完美地工作,生成了一个供其他应用程序项目使用的 aar 文件。
文件proguard-rules.pro
好像没有被使用。该项目在其 build.gradle
中包含以下内容:
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'),
'proguard-rules.pro'
signingConfig signingConfigs.Release
}
debug {
signingConfig signingConfigs.Debug
}
}
proguard-rules.pro
具有以下内容:
# Preserve all public classes, and their public and protected fields and methods.
-keep public class * {
public protected *;
}
public 方法的名称根本没有保留:
有人可以提供有关如何解决此问题的提示吗?
将此行添加到 gradle.properties
android.enableR8 = true
然后在 proguard-rules.pro
-keep public class ** {
public *;
protected *;
}
编辑 #1
在此处查看如何将 Proguard 迁移到 R8:Android/java: Transition / Migration from ProGuard to R8?