2013-04-03 110 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

相關問題