找不到引用的方法

Can't find referenced method

我在尝试生成我的 apk 后收到此错误

Warning:com.sun.mail.handlers.handler_base: can't find referenced method 'boolean equals(java.awt.datatransfer.DataFlavor)' in program class javax.activation.ActivationDataFlavor

我可以 运行 我的代码到设备但不生成 APK

尝试将此添加到 gradle 文件的 Proguard 部分:

-dontwarn java.awt.**,javax.activation.**,java.beans.**

正如@SilSur 评论的那样,所选择的解决方案仅隐藏 Proguard 警告,但不会防止由于缺少 类 而导致的运行时错误。经过一些试错后,我发现这个 Proguard 配置工作正常,可以防止任何运行时问题:

# JavaMail
-dontwarn java.awt.**
-dontwarn javax.activation.**
-dontwarn java.beans.**
-keep class javamail.** {*;}
-keep class javax.mail.** {*;}
-keep class javax.activation.** {*;}
-keep class com.sun.mail.** {*;}
-keep class mailcap.** {*;}
-keep class mimetypes.** {*;}
-keep class myjava.awt.datatransfer.** {*;}
-keep class org.apache.harmony.awt.** {*;}
-keep class org.apache.harmony.misc.** {*;}