关于manifest:android中的proguard和R

 2021-04-27 

proguard and R in android

我第一次在我的android应用中使用proguard。

我无法正常工作。我正在查看usage.txt文件,以查看proguard从我的代码中删除的部分。

我看到了这种不寻常的东西,也不知道该怎么想:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 [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配置中:

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

并查看以下内容以获取通用的android proguard设置:Android:Proguard的推荐配置是什么?

编辑:
为了反射,请添加以下内容:

1
2
3
4
5
6
-keepattributes InnerClasses

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