今天把手机升级到andorid11 , 结果发送邮件不行了.在android 10以下的版本都是可以的
晴天霹雳.
报错信息,
java.lang.VerifyError: Rejecting class com.sun.mail.handlers.text_plain that attempts to sub-type erroneous class com.sun.mail.handlers.handler_base (declaration of 'com.sun.mail.handlers.text_plain' appears in /data/app/~~BSCJjF1i2dadpao9sX6Klw==/com.example.rewritecommand-A-1heEzlfaC_rlgpG5zxCA==/base.apk)
at java.lang.Class.newInstance(Native Method)
at javax.activation.MailcapCommandMap.getDataContentHandler(MailcapCommandMap.java:631)
at javax.activation.MailcapCommandMap.createDataContentHandler(MailcapCommandMap.java:585)
at javax.activation.DataHandler.getDataContentHandler(DataHandler.java:627)
at javax.activation.DataHandler.writeTo(DataHandler.java:329)
at javax.mail.internet.MimeUtility.getEncoding(MimeUtility.java:327)
at javax.mail.internet.MimeBodyPart.updateHeaders(MimeBodyPart.java:1568)
at javax.mail.internet.MimeMessage.updateHeaders(MimeMessage.java:2264)
at javax.mail.internet.MimeMessage.saveChanges(MimeMessage.java:2224)
at javax.mail.Transport.send(Transport.java:123)
at com.example.rewritecommand.utils.MailSender.sendTextMail(MailSender.java:69)
at com.example.rewritecommand.utils.SendMailUtil.lambda$send$0(SendMailUtil.java:24)
at com.example.rewritecommand.utils.-$$Lambda$SendMailUtil$La9m5rBNEBOYMRsQtKdEiLWbLhg.run(Unknown Source:6)
at java.lang.Thread.run(Thread.java:923)
Caused by: java.lang.VerifyError: Verifier rejected class com.sun.mail.handlers.handler_base: java.awt.datatransfer.DataFlavor[] com.sun.mail.handlers.handler_base.getTransferDataFlavors() failed to verify: java.awt.datatransfer.DataFlavor[] com.sun.mail.handlers.handler_base.getTransferDataFlavors(): [0x4] can't resolve returned type 'Unresolved Reference: java.awt.datatransfer.DataFlavor[]' or 'Reference: javax.activation.ActivationDataFlavor[]' (declaration of 'com.sun.mail.handlers.handler_base' appears in /data/app/~~BSCJjF1i2dadpao9sX6Klw==/com.example.rewritecommand-A-1heEzlfaC_rlgpG5zxCA==/base.apk)
at java.lang.Class.newInstance(Native Method)
at javax.activation.MailcapCommandMap.getDataContentHandler(MailcapCommandMap.java:631)
at javax.activation.MailcapCommandMap.createDataContentHandler(MailcapCommandMap.java:585)
at javax.activation.DataHandler.getDataContentHandler(DataHandler.java:627)
at javax.activation.DataHandler.writeTo(DataHandler.java:329)
at javax.mail.internet.MimeUtility.getEncoding(MimeUtility.java:327)
at javax.mail.internet.MimeBodyPart.updateHeaders(MimeBodyPart.java:1568)
at javax.mail.internet.MimeMessage.updateHeaders(MimeMessage.java:2264)
at javax.mail.internet.MimeMessage.saveChanges(MimeMessage.java:2224)
at javax.mail.Transport.send(Transport.java:123)
at com.example.rewritecommand.utils.MailSender.sendTextMail(MailSender.java:69)
at com.example.rewritecommand.utils.SendMailUtil.lambda$send$0(SendMailUtil.java:24)
at com.example.rewritecommand.utils.-$$Lambda$SendMailUtil$La9m5rBNEBOYMRsQtKdEiLWbLhg.run(Unknown Source:6)
at java.lang.Thread.run(Thread.java:923)
将版本升级到1.6.7, 问题消失
结果又出现了
More than one file was found with OS independent path 'META-INF/LICENSE.md'.
在build.gradle中添加以下代码, 问题解决
packagingOptions {
pickFirst 'META-INF/LICENSE.md' // picks the JavaMail license file
exclude 'META-INF/DEPENDENCIES'
exclude 'META-INF/LICENSE'
exclude 'META-INF/LICENSE.txt'
exclude 'META-INF/license.txt'
exclude 'META-INF/NOTICE'
exclude 'META-INF/NOTICE.txt'
exclude 'META-INF/NOTICE.md'
exclude 'META-INF/notice.txt'
exclude 'META-INF/ASL2.0'
exclude("META-INF/*.kotlin_module")
}
完整的build.gradle
apply plugin: 'com.android.application'
android {
compileSdkVersion 30
buildToolsVersion "30.0.2"
defaultConfig {
...
}
buildTypes {
...
}
packagingOptions {
pickFirst 'META-INF/LICENSE.md' // picks the JavaMail license file
exclude 'META-INF/DEPENDENCIES'
exclude 'META-INF/LICENSE'
exclude 'META-INF/LICENSE.txt'
exclude 'META-INF/license.txt'
exclude 'META-INF/NOTICE'
exclude 'META-INF/NOTICE.txt'
exclude 'META-INF/NOTICE.md'
exclude 'META-INF/notice.txt'
exclude 'META-INF/ASL2.0'
exclude("META-INF/*.kotlin_module")
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
dependencies {
...
}