从APK中删除未使用的R. *常数是否安全?

时间:2018-10-04 11:09:11

标签: android proguard android-resources

在将应用拆分为模块的过程中,我发现我们达到了dex字段数限制:

D8: Cannot fit requested classes in a single dex file. Try supplying a main-dex list.
# fields: 93259 > 65536

调查后,我发现这些字段中的大多数(〜67000)属于来自各种R.java文件的常量。

并且随着添加新模块,这个数字增长非常快,因为每个模块的R.java文件都包含来自所有依赖项的常量。

我在proguard-android.txt中发现了Proguard规则,可防止它缩小:

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

因此我删除了此规则,并且字段计数恢复正常。

有人知道为什么将此规则添加到默认的Proguard配置中,以及如果Proguard收缩了这些字段会带来什么后果?

0 个答案:

没有答案