13

我在使用 proguard 混淆我的应用程序时遇到问题。

当我在 android studio 中创建新应用程序时,我可以使用 proguard 并且它正在生成 mapping.txt,但是当我尝试在从 eclipse 迁移到 android studio 的项目上使用 proguard 时,没有生成 mapping.txt。

以下是我的 proguard-rules.pro 文件

-dontobfuscate
-dontshrink
-keepdirectories
-keeppackagenames javax.mail.**
-keeppackagenames javax.activation.**
-keeppackagenames com.sun.mail.**
-keeppackagenames myjava.**
-keeppackagenames org.apache.harmony.**
-keeppackagenames mailcap.**
-keeppackagenames mimetypes.**
-keep class javamail.** {*;}
-keep class javax.mail.** {*;}
-keep class javax.activation.** {*;}
-keep class javax.mail.internet.** {*;}

-keep class com.sun.mail.dsn.** {*;}
-keep class com.sun.mail.handlers.** {*;}
-keep class com.sun.mail.smtp.** {*;}
-keep class com.sun.mail.util.** {*;}

-keep class javax.ws.rs.** { *; }

-keep class mailcap.** {*;}
-keep class mimetypes.** {*;}
-keep class myjava.awt.datatransfer.** {*;}
-keep class org.apache.harmony.awt.** {*;}
-keep class org.apache.harmony.misc.** {*;}

-dontwarn com.fasterxml.jackson.**
-dontwarn java.awt.**
-dontwarn java.beans.Beans
-dontwarn javax.security.**

-ignorewarnings
-printmapping build/outputs/mapping/release/mapping.txt
4

2 回答 2

13

尝试从文件中删除以下行:

-dontobfuscate
.
.
.
-printmapping build/outputs/mapping/release/mapping.txt

第一行似乎禁用了混淆,最后一行似乎将映射文件复制到默认位置以外的位置。

于 2015-08-20T13:43:48.717 回答
1

从整个项目中删除 -dontobfuscate ,您将在 build/outputs/mapping/.. 下生成映射文件

于 2018-06-14T13:39:26.720 回答