我正在将亚马逊的广告整合到我的应用程序中,我使用Proguard。他们告诉我,如果我使用Proguard,我必须"确保R类在混淆过程中保留其名称"
有谁知道是什么意思,如果是,我怎么能做到这一点?
我已经尝试了一堆不同的选项,我仍然从亚马逊的SDK得到一个错误,我的资源是混淆的。我试过:
-keepnames com.my.app.*.R;
-keeppackagenames com.my.app.*.R;
-keepclassmembers com.my.app.*.R;
-keep class com.my.app.*.R;
-keepclassmembers class **.R$* {
public static <fields>;
}
Proguard通过将所有类名和方法替换为A, B, C, D等来混淆您的代码。
要保留类名,将-keepnames
添加到proguard文件中。
示例可以是-keepnames com.example.myproject.R
也看这个SO post: Proguard保持类名?
也请参阅proguard项目,了解有关它的功能和使用的选项的更多信息:http://proguard.sourceforge.net/#manual/introduction.html