无法找到参考方法

时间:2016-12-05 22:27:18

标签: android android-proguard

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

  

警告:com.sun.mail.handlers.handler_base:无法找到引用的方法' boolean equals(java.awt.datatransfer.DataFlavor)'在程序类javax.activation.ActivationDataFlavor

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

2 个答案:

答案 0 :(得分:4)

尝试在Proguard文件的gradle部分添加此内容:

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

答案 1 :(得分:1)

就像@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.** {*;}