Thu*_*sDP 5 android jakarta-mail proguard
首先,我已经提到过类似的帖子,Android,javamail和proguard
提到的解决方案是在proguard-project.txt中明确地保留以下内容:
-dontwarn java.awt.**
-dontwarn java.beans.Beans
-dontwarn javax.security.**
-keep class javamail.** {*;}
-keep class javax.mail.** {*;}
-keep class javax.activation.** {*;}
-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 mailcap.** {*;}
-keep class mimetypes.** {*;}
-keep class myjava.awt.datatransfer.** {*;}
-keep class org.apache.harmony.awt.** {*;}
-keep class org.apache.harmony.misc.** {*;}
Run Code Online (Sandbox Code Playgroud)
乍一看,这似乎是有效的,因为它编译时没有任何警告.但是,它无法读取消息内容,只是跳过它.我尝试过以下方法:
经过几个小时的挫折之后,我发现这似乎有用了:
-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 com.sun.mail.dsn.** {*;}
-keep class com.sun.mail.handlers.** {*;}
-keep class com.sun.mail.smtp.** {*;}
-keep class com.sun.mail.util.** {*;}
-keep class mailcap.** {*;}
-keep class mimetypes.** {*;}
-keep class myjava.awt.datatransfer.** {*;}
-keep class org.apache.harmony.awt.** {*;}
-keep class org.apache.harmony.misc.** {*;}
-dontwarn java.awt.**
-dontwarn java.beans.Beans
-dontwarn javax.security.**
Run Code Online (Sandbox Code Playgroud)
当然这是荒谬的,因为我正在开启-dontobfuscate和-dontshrink.任何proguard和javamail专家都有解决方案吗?我是ADT17,使用2.1(api7)进行构建.如果我可以完全从过程中排除罐子呢?在这一点上,任何建议都是天赐之物.
Thu*_*sDP 15
问题解决了.我已经在这里发布了解决方案,以解决上面链接中提到的其他解决方案的问题.
因为我正在使用带有javamail(Mail.java)的帮助器类,所以我需要将该类包含为-keep以便它可以工作.我编辑了Android,javamail和proguard提供的解决方案以包含帮助程序类,因为许多人使用这个,而另一个解决方案可能会失败,如果没有它.
把它放在你的proguard-project.txt文件中.我使用了默认的android设置.
-dontshrink
-keep class javax.** {*;}
-keep class com.sun.** {*;}
-keep class myjava.** {*;}
-keep class org.apache.harmony.** {*;}
-keep public class Mail {*;}
-dontwarn java.awt.**
-dontwarn java.beans.Beans
-dontwarn javax.security.**
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1916 次 |
| 最近记录: |