Phi*_*ard 7 android jakarta-mail proguard
我试图在我的Android应用程序中使用javamail,但是proguard抱怨它无法找到的大量内容.我尝试过在搜索互联网时找到的各种补救措施,但似乎没有任何效果.有人有这个东西吗?谢谢.
我已经向defauly proguard.cfg添加了一些-dontwarn命令,并成功消除了除此之外的所有警告消息:
Warning: org.apache.harmony.awt.datatransfer.DataProxy: can't find referenced class [Ljava.awt.datatransfer.DataFlavor;
Run Code Online (Sandbox Code Playgroud)
此警告的格式与其他警告的格式不同.
Phi*_*ard 22
我正在使用2.1 SDK,这可能会有所作为.我也有一个相当复杂的电子邮件.但是我现在已经对它进行了排序,升级到proguard 4.6并将以下行添加到我的proguard中,cfg:
-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)
最后一组线是非平凡的.我是通过对javamail包中的每个jar运行tar tf命令来获得它的.
SDK 17的更新
Android SDK 17引入了加载jar的方式的一些变化.如果您有一个使用外部jar的项目,升级到SDK 17或更高版本可能会破坏它.要解决此问题,请从菜单中选择Project> Properties> Java Build Path> Order and Export,然后选中javamail使用的三个jar的左侧框.这可确保将jar导出到目标构建.如果没有此修复程序,项目仍将构建,但javamail将不再工作,proguard也将失败.这根本不是一个问题.这是一个Android SDK问题.不需要更改proguard.cfg.
升级SDK的另一个后果是不再需要手动升级proguard.
| 归档时间: |
|
| 查看次数: |
4343 次 |
| 最近记录: |