android11-mail报错问题解决

今天把手机升级到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 {
...
}

 

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值