我正在编写 Android 库,所以我想为一些构造函数/方法保留参数名称。我正在将我的库部署为 AAR 文件。
在 Gradle 从 3.3.2 升级到 3.4.0 之后,构造函数和公共方法中的所有参数都重命名为“var1”之类的东西,在此之前一切都很好。
据我了解,主要区别在于,现在默认情况下,R8 用于缩小和混淆我们的代码,而不是 Proguard。所以可能我在配置中遗漏了一些东西。
假设我有课:
public class Foo {
public String bar;
public Foo(String bar) {
this.bar = bar;
}
}
所以在 proguard-rules.pro 我有:
-keepparameternames
-keepattributes MethodParameters
-keepattributes Signature
-keep class my.class.path.Foo { *; }
我将该配置加载到我的模块 gradle 文件中:
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}}
现在我的 AAR 文件中的类看起来像这样 ->
public class Foo {
public String bar;
public SecureElement(String var1) {
this.bar = var1;
}
}
所以即使是字段名也被保留了,但我的构造函数中没有变量名。
如何保留方法/构造函数参数名称?
我错过了什么?