gpt4 book ai didi

Android、javamail 和 proguard

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:09:08 26 4
gpt4 key购买 nike

我正尝试在我的 Android 应用程序中使用 javamail,但混淆器提示说它找不到一大堆东西。我尝试了在互联网上搜索时发现的各种补救措施,但似乎没有任何效果。有没有人让这个东西工作?谢谢。

我在默认的 proguard.cfg 中添加了一些 -dontwarn 命令,并成功消除了除此之外的所有警告消息:

Warning: org.apache.harmony.awt.datatransfer.DataProxy: can't find referenced class [Ljava.awt.datatransfer.DataFlavor;

此警告甚至与所有其他警告的格式不同。

最佳答案

我使用的是 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.** {*;}

最后一行很重要。我通过对 javamail 包中的每个 jar 运行 tar tf 命令获得了它。

SDK 17 更新

Android SDK 17 对 jar 的加载方式进行了一些更改。如果您有一个使用外部 jar 的项目,升级到 SDK 17 或更高版本可能会破坏它。要修复此问题,请从菜单中选择“项目”>“属性”>“Java 构建路径”>“订购和导出”,然后选中 javamail 使用的三个 jar 左侧的框。这可确保将 jars 导出到目标构建。如果没有此修复,该项目仍将构建,但 javamail 将不再工作并且 proguard 也会失败。这根本不是混淆器问题。这是一个 Android SDK 问题。无需更改 proguard.cfg。

升级 SDK 的另一个结果是不再需要手动升级混淆器。

关于Android、javamail 和 proguard,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5434699/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com