小编Tho*_*mly的帖子

KitKat的GMail在发送非图像或视频的附件时崩溃

更新3: 似乎这一切都是由OTA升级到KitKat 4.4引起的.强制停止和清除GMail应用程序的数据解决了这个问题.不是OTA更新的用户友好结果.

更新2: 崩溃完全是由于Android 4.4 KitKat中新的Gmail文件处理.当添加任何其他文件类型作为附件而不是图像或视频时,GMail会在发送电子邮件时崩溃.为何删除其应用的功能?

有谁知道在哪里报告GMail错误?我可以通过使用GMail(而不是我自己的代码)重现崩溃:

  1. 撰写新邮件

  2. 添加附件(仅2个选项:"附加图像"或"附加视频")

  3. 选择其中之一.

  4. 选择一个文件浏览器(如ES文件浏览器)来选择一个zip/apk/...(或其他不是图像/视频的文件)

  5. Gmail在发送邮件时崩溃.

更新:

崩溃发生在我的Nexus 4运行官方(OTA)KitKat上.但是,在我的三星Galaxy S2上运行相同的代码每晚运行CM10.2(Jelly Bean)工作正常.它也适用于运行4.0.4的三星Galaxy Tab 2.

是否在KitKat上破坏了GMail?

Nexus 4有GMail版本4.6.1(920375)Galaxy S2有GMail版本4.6(836823)

原始问题(已解决,请参阅更新3):

我的Android应用程序中有以下代码:

Intent email = new Intent(Intent.ACTION_SEND);
email.putExtra(Intent.EXTRA_EMAIL, new String[]{"xxx@gmail.com"});
email.putExtra(Intent.EXTRA_SUBJECT, "MetroNavigator data");
email.setType("application/zip");
email.putExtra(Intent.EXTRA_TEXT, "This email contains tracking data generated by the MetroNavigator app.");
email.putExtra(Intent.EXTRA_STREAM, Uri.parse("file://" + file.getAbsolutePath()));

startActivity(Intent.createChooser(email, "Choose a mail client to send the data:"));
Run Code Online (Sandbox Code Playgroud)

这似乎很有效,因为zip文件正确地添加到电子邮件中(你可以看到,因为GMail提到了文件大小,如果文件路径错误则不会这样).

截图:(我还没有10个代表,所以无法嵌入) http://i.imgur.com/UkMQZLG.png

但是,GMail在发送邮件时崩溃,给出以下输出:

11-23 12:22:38.451  31900-32089/? E/AndroidRuntime? FATAL EXCEPTION: SyncAdapterThread-1
Process: com.google.android.gm, PID: 31900
java.lang.NullPointerException
        at android.content.ContentResolver.openInputStream(ContentResolver.java:613) …
Run Code Online (Sandbox Code Playgroud)

gmail android nullpointerexception android-intent

7
推荐指数
1
解决办法
3153
查看次数