Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/197.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android上的JavaMail API_Android_Jakarta Mail - Fatal编程技术网

Android上的JavaMail API

Android上的JavaMail API,android,jakarta-mail,Android,Jakarta Mail,我正在尝试使用JavaMail API在Android上发送电子邮件,这只是一个简单的测试 但每当我尝试启动该应用程序时,就会出现此异常 2020-09-23 13:23:42.442 21860-21971/ae.ucg.mailtest E/AndroidRuntime: FATAL EXCEPTION: DefaultDispatcher-worker-2 Process: ae.ucg.mailtest, PID: 21860 java.lang.VerifyError:

我正在尝试使用JavaMail API在Android上发送电子邮件,这只是一个简单的测试

但每当我尝试启动该应用程序时,就会出现此异常

2020-09-23 13:23:42.442 21860-21971/ae.ucg.mailtest E/AndroidRuntime: FATAL EXCEPTION: DefaultDispatcher-worker-2
    Process: ae.ucg.mailtest, PID: 21860
    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/~~nyiEJPyVs6-ADHqg-ebklA==/ae.ucg.mailtest-_Q4dGJfXP_9F5CZNfhDVtQ==/base.apk)
        at java.lang.Class.newInstance(Native Method)
        at javax.activation.MailcapCommandMap.getDataContentHandler(MailcapCommandMap.java:601)
        at javax.activation.MailcapCommandMap.createDataContentHandler(MailcapCommandMap.java:555)
        at javax.activation.DataHandler.getDataContentHandler(DataHandler.java:597)
        at javax.activation.DataHandler.writeTo(DataHandler.java:299)
        at javax.mail.internet.MimeUtility.getEncoding(MimeUtility.java:316)
        at javax.mail.internet.MimeBodyPart.updateHeaders(MimeBodyPart.java:1551)
        at javax.mail.internet.MimeMessage.updateHeaders(MimeMessage.java:2238)
        at javax.mail.internet.MimeMessage.saveChanges(MimeMessage.java:2198)
        at javax.mail.Transport.send(Transport.java:99)
        at ae.ucg.mailtest.MainActivity$onCreate$1.invokeSuspend(MainActivity.kt:38)
        at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
        at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:56)
        at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:571)
        at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:738)
        at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:678)
        at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:665)
     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/~~nyiEJPyVs6-ADHqg-ebklA==/ae.ucg.mailtest-_Q4dGJfXP_9F5CZNfhDVtQ==/base.apk)
        at java.lang.Class.newInstance(Native Method) 
        at javax.activation.MailcapCommandMap.getDataContentHandler(MailcapCommandMap.java:601) 
        at javax.activation.MailcapCommandMap.createDataContentHandler(MailcapCommandMap.java:555) 
        at javax.activation.DataHandler.getDataContentHandler(DataHandler.java:597) 
        at javax.activation.DataHandler.writeTo(DataHandler.java:299) 
        at javax.mail.internet.MimeUtility.getEncoding(MimeUtility.java:316) 
        at javax.mail.internet.MimeBodyPart.updateHeaders(MimeBodyPart.java:1551) 
        at javax.mail.internet.MimeMessage.updateHeaders(MimeMessage.java:2238) 
        at javax.mail.internet.MimeMessage.saveChanges(MimeMessage.java:2198) 
        at javax.mail.Transport.send(Transport.java:99) 
        at ae.ucg.mailtest.MainActivity$onCreate$1.invokeSuspend(MainActivity.kt:38) 
        at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33) 
        at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:56) 
        at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:571) 
        at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:738) 
        at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:678) 
        at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:665) 

我知道图书馆本身有问题,但我到底该怎么办

这是我的密码

override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)

        lifecycleScope.launch(Dispatchers.IO) {
            try {
                val props = Properties().apply {
                    this["mail.smtp.host"] = "smtp.gmail.com"
                    this["mail.smtp.socketFactory.port"] = "465"
                    this["mail.smtp.socketFactory.class"] = "javax.net.ssl.SSLSocketFactory"
                    this["mail.smtp.auth"] = "true"
                    this["mail.smtp.port"] = "465"
                }

                val session = Session.getDefaultInstance(props, object : Authenticator() {
                    override fun getPasswordAuthentication() = PasswordAuthentication(Config.EMAIL, Config.PASSWORD)
                })

                val message = MimeMessage(session).apply {
                    setFrom(InternetAddress(Config.EMAIL))
                    addRecipient(Message.RecipientType.TO, InternetAddress("..."))
                    subject = "Hello world"
                    setText("This is a hello world message", "UTF-8")
                }
                Transport.send(message)
            } catch (e: Exception) {
                Toast.makeText(this@MainActivity, e.message, Toast.LENGTH_LONG).show()
            }
        }
    }
这就是我正在使用的图书馆

implementation 'com.sun.mail:android-mail:1.6.5'
implementation 'com.sun.mail:android-activation:1.6.5'

JAF pom.xml有吗?@jmehrens我不是在做Java项目,我在做Android。所以我的项目中没有pom.xml文件。除非我真的要添加一个链接,上面的链接与您的问题相关。我的想法是,你应该试试旧版本的JAF/JavaMail,看看这个问题是否仍然存在。你在哪个版本的Android上运行这个?在Android 11之前,这一切都很好,但现在在Android 11上,我收到了相同的错误。我已经向谷歌报告了这一错误。这是一个链接,指向这个链接并启动这个问题-这会让谷歌知道你受到了影响,希望它能更快地得到解决。JAF pom.xml有吗?@jmehrens我不是在做Java项目,我是在做Android。所以我的项目中没有pom.xml文件。除非我真的要添加一个链接,上面的链接与您的问题相关。我的想法是,你应该试试旧版本的JAF/JavaMail,看看这个问题是否仍然存在。你在哪个版本的Android上运行这个?在Android 11之前,这一切都很好,但现在在Android 11上,我收到了相同的错误。我已经向谷歌报告了这一错误。这是一个链接,直接链接到这个链接并开始讨论这个问题——这会让谷歌知道你受到了它的影响,希望它能更快地得到解决。