【解决方案】Android10使用com.sun.mail:android-mail:1.5.5发送邮件直接闪退

简单明了地说就是更新依赖插件,使用高版本的android-mail。

背景

我的as版本2021.1.1, 当前android-email版本1.5.5, 更新后版本 1.6.7

1.5.5版本的email在安卓7.1.1 运行正常,堪称完美;
而在安卓10, 安卓11 就直接闪退了,调试工具捕获到的错误信息大致是:
java.lang.VerifyError: Rejecting class com.sun.mail.handlers.text_plain that...

不确定是不是这个错误信息了,懒得去还原了,只知道虽然加了异常捕获,依然是闪退了就行。

只要你不是在主线程运行了发送消息指令而闪退的。

下面是详细步骤

一、更新插件的步骤

方法1.

直接更改app级别下的build.gradle文件
在这里插入图片描述
双击打开后,直接将email版本修改为1.6.7。

dependencies{
// ...
   implementation 'com.sun.mail:android-mail:1.6.7'
//...
}

修改完成后保存,并同步gradle。
即:Sync Project with Gradle Files
【解决方案】Android10使用com.sun.mail:android-mail:1.5.5发送邮件直接闪退_第1张图片

方法2.

使用Android Studio自带的project structure工具
使用快捷键 Ctrl + Alt + Shift + s 打开project Structure工具,点击左侧的 依赖选项,并在右侧找到 并点击 ‘android-email’ 依赖
【解决方案】Android10使用com.sun.mail:android-mail:1.5.5发送邮件直接闪退_第2张图片
如果依赖项不是最新的,会提示你进行更新, 并提供你可选版本。
然后点击ok即可自动同步。

二、重新编译运行

之后再次编译运行,如果没有报错,即可成功发送邮件了。

如果编译报错了什么两个文件重复的问题,那就在 build.gradle文件中添加下属配置。

packagingOptions {
     exclude  'META-INF/NOTICE.md'
     exclude  'META-INF/LICENSE.md'
     // ...
}

重新同步、编译、运行、预祝发送邮件成功!!!

你可能感兴趣的:(经验详谈,Android,Email,android-email)