2013-04-03 76 views
0

我将亚马逊的广告整合到我的应用程序中,并使用Proguard。他们告诉我,如果我使用Proguard,我必须“确保R类在混淆处理过程中保留其名称”Proguard保留R类

有人知道这是什么意思,如果是的话,我该如何做到这一点?

UPDATE

我已经尝试了很多不同的选择,而我仍然得到来自亚马逊的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>; 
} 
+0

什么是那些*在包名中做? – Darwind 2013-04-06 21:18:13

回答

0

Proguard的混淆代码,通过更换具有A,B,C,d等所有的类名和方法。

要保留类名称,请将-keepnames添加到您的proguard文件中。

例子是-keepnames com.example.myproject.R

另请参阅该SO帖子:Proguard keep class names?

另请参见ProGuard的项目,了解更多有关它做什么和什么选项有使用方法:http://proguard.sourceforge.net/#manual/introduction.html

+0

感谢您的回应。我已经尝试了一切,我无法使Proguard不会混淆我的资源。到目前为止,我已经将OP更新为我所尝试的。 – 2013-04-06 01:11:16