关于android:使用Proguard时未生成mapping.txt文件

mapping.txt file is not getting generated when using Proguard

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

我能够使用proguard,并且在android studio中创建新应用程序时会生成mapping.txt,但是当我尝试在从Eclipse迁移到android studio的项目中使用proguard时,则不会生成mapping.txt。

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
-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


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

1
2
3
4
5
-dontobfuscate
.
.
.
-printmapping build/outputs/mapping/release/mapping.txt

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


从整个项目中删除-dontobfuscate,您将在build / outputs / mapping /下获得映射文件。