android - Android 中的混淆器和 R

标签 android manifest proguard

我第一次在我的 Android 应用程序中使用混淆器。

我没有让它正常工作。我正在查看我的 usage.txt 文件以查看混淆器从我的代码中删除的部分。

我看到这些不寻常的事情,不知道该怎么想:

 [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 设置:Android: What are the recommended configurations for Proguard?

编辑: 为了反射(reflection)添加:

-keepattributes InnerClasses

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

关于android - Android 中的混淆器和 R,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19249835/

相关文章:

manifest - 应用程序 list 引用了在 windows phone 8.1 中的主包错误中没有候选的图像

android - 违反 google play 中的权限政策

android - 如何在 Android App 中包含不同分辨率的图标?

android - 使用 Proguard 时,是否需要为每个引用的库单独配置?

android - Android 上的 Card.io 在 Release模式下不显示扫描选项

android - 混淆的 openCV 库的 NoSuchMethodError

android - 滑动清除应用程序时广播接收器停止触发

android - 无法在 Ice Cream Sandwich 中播放 HLS 流

android - 如何使用**日期对象**从** Realm 数据库**中获取数据?

android - 如何测试 IntentService android?