2013-10-08 75 views
3

我用我的android应用程序第一次使用proguard。proguard和R在android

我没有得到它正常工作。我正在查看我的usage.txt文件,以查看从我的代码中删除了该部分的proguard。

我看到这个不寻常的事情,不知道在想什么:

[my_package].Manifest 
    [my_package].Manifest$permission 
    [my_package].R$array 
    [my_package].R$attr 
    [my_package].R$bool 
    [my_package].R$color 
    [my_package].R$dimen 
    [my_package].R$id 
    [my_package].R$integer 
    [my_package].R$layout 
    [my_package].R$menu 
    [my_package].R$raw 
    [my_package].R$string 
    [my_package].R$style 
    [my_package].R$styleable 

是proguard的从我的代码删除所有内容吗?在此

#Keep the R 
-keepclassmembers class **.R$* { 
    public static <fields>; 
} 

,并寻找一个通用的Android proguard的设置:

+0

你的计划在使用proguard之后工作? – ramaral

+0

不,proguard在我的应用程序中导致一些错误。我想也是因为我打电话的一些反思。我正在使用keep选项以避免删除/重命名此方法和类。 –

+0

是的,当我们使用反射时,我们必须使用keep选项。 – ramaral

回答

0

添加到您的ProGuard配置Android: What are the recommended configurations for Proguard?

编辑: 反思补充一点:

-keepattributes InnerClasses 

-keep class **.R 
-keep class **.R$* { 
    <fields>; 
} 
+0

这已经在'$ {sdk.dir}/tools/proguard/proguard-android.txt'中,因此您不需要再指定。 – zapl

+0

我正在使用:$ {sdk.dir} /tools/proguard/proguard-android-optimize.txt所以我想我已经添加了这行代码 –

+0

看到这个。 http://stackoverflow.com/questions/13923815/proguard-makes-reflection-with-the-r-class-in-android-application-no-longer-work –