如何防止 Dexguard 混淆 android studio 中的资源文件夹?

Posted

技术标签:

【中文标题】如何防止 Dexguard 混淆 android studio 中的资源文件夹?【英文标题】:How to prevent Dexguard from obfuscating the resources folder in anroid studio? 【发布时间】:2019-12-08 19:11:35 【问题描述】:

我想保留 \res 文件夹,所以 dexguard 不会混淆这个 \res 目录。因为 dexguard 正在重命名所有文件,并且某些文件最后有空间,这对我来说是个大问题,所以我试图保留res/ 文件夹是未混淆的。

我已经一一尝试了所有这些以检查它是否有效,但我未能使整个 res/ 文件夹免受混淆

-keep class *.R$
-keepnames class com.safarifone.waafi.R$raw  *; 

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


-keeppackagenames com.safarifone.waafi.R$

-keepresources res/**

-keepdirectories MyAccountApp/src/main/res/*


-keepattributes InnerClasses
 -keep class **.R
 -keep class **.R$* 
    <fields>;


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

-keep class **.R$*

-keepnames class com.safarifone.waafi.R$layout  *; 
-keep public class com.safarifone.waafi.R$layout  *; 

【问题讨论】:

确保你没有 shrinkResources true 在 build gradle @BachVu 是的,我的构建 gradle 中没有 shrinkResource true @BachVu 即使我尝试过使用 -dontshrink 但还是一样 【参考方案1】:

为了使所有资源文件不被 DexGuard 混淆,请使用如下规则

-keepresourcefiles res/**

【讨论】:

以上是关于如何防止 Dexguard 混淆 android studio 中的资源文件夹?的主要内容,如果未能解决你的问题,请参考以下文章

使用 DexGuard 混淆动态加载的类

DexGuard 如何加密类?

如何使用 Dexguard 混淆清单文件中引用的类?

dexguard 混淆问题

DexGuard/Proguard 混淆注释值

我应该在 proGuard 上使用 dexGuard、redEX 来混淆广播接收器吗