【问题标题】:Android - attaching multiple files in email intent crashes GmailAndroid - 在电子邮件意图中附加多个文件会使 Gmail 崩溃
【发布时间】:2014-02-07 20:38:50
【问题描述】:

我尝试以这种方式在电子邮件意图中附加多个文件(我在 stackoverflow 的接受答案中看到了这一点):

String[] attachments;<--contains all the filenames i want to attach;
ArrayList<Uri> uris = new ArrayList<Uri>();

for (String file : attachments){
    if(!file.equals("")){
        Log.w("-"+file +"-","attached");
        File fileIn = new File(file);
        Uri u = Uri.fromFile(fileIn);
        uris.add(u);
    }
}
//check that uri list is correct
for(Uri uri1:uris){
    Log.w(uri1.toString(),"uri list");
}

intMail.putParcelableArrayListExtra(Intent.EXTRA_STREAM, uris);

此代码导致 Gmail 客户端崩溃,并且 logcat 显示为警告:

Key android.intent.extra.STREAM expected Parcelable but value was a java.util.ArrayList.The default value <null> was returned.

在那之后 Gmal 崩溃并且 logcat 说

E/AndroidRuntime(10355): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.google.android.gm/com.google.android.gm.ComposeActivity}: java.lang.NullPointerException

我不明白我做错了什么......任何有用的建议/意见?

【问题讨论】:

    标签: android crash gmail email-attachments


    【解决方案1】:

    在创建 intMail 时尝试使用 Intent.ACTION_SEND_MULTIPLE,而不是 Intent.ACTION_SEND。 见this answer

    【讨论】:

    • 仅在较新的 API 版本中可用。我的应用适用于 8 及以上的所有版本
    • emailIntent.setType("image/jpeg"); 在我附加多张图片时也需要
    猜你喜欢
    • 1970-01-01
    • 2015-03-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多