android中的proguard和R

android中的proguard和R,android,manifest,proguard,Android,Manifest,Proguard,我第一次在android应用程序中使用proguard 我没有让它正常工作。我正在查看usage.txt文件,以查看proguard从我的代码中删除的部分是什么 我看到这些不寻常的事情,不知道该怎么想: [my_package].Manifest [my_package].Manifest$permission [my_package].R$array [my_package].R$attr [my_package].R$bool [my_package

我第一次在android应用程序中使用proguard

我没有让它正常工作。我正在查看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是否正在从我的代码中删除所有这些内容

将此添加到proguard配置中:

#Keep the R
-keepclassmembers class **.R$* {
    public static <fields>;
}
#保持R
-keepclassmembers类**.R$*{
公共静态;
}
对于一般的android proguard设置,请看以下内容:

编辑: 对于反射,添加以下内容:

-keepattributes InnerClasses

-keep class **.R
-keep class **.R$* {
    <fields>;
}
-keepattributes innerClass
-继续上课**
-继续上课**.R$*{
;
}

您的程序在使用proguard后仍能正常工作?不,proguard在我的应用程序上导致了一些错误。我想这也是因为我打电话的一些想法。我正在使用keep选项来避免删除/重命名此方法和类。是的,当我们使用反射时,我们必须使用keep选项。可能重复的选项已经存在于
${sdk.dir}/tools/proguard/proguard android.txt
中,所以您不需要再次指定它。我使用:${sdk.dir}/tools/proguard/proguard-android-optimize.txt,所以我想我已经添加了这一行,请参见。