gpt4 book ai didi

android - Android 4.1/4.3/4.4 电子邮件应用程序中的 FileProvider 失败,列 '_data' 不存在

转载 作者:IT王子 更新时间:2023-10-28 23:26:34 27 4
gpt4 key购买 nike

我有一个 FileProvider,用于将 SD 卡上的文件附加到电子邮件中。

这适用于任何使用 Intent 的应用程序中的 LollipopMarshmallow

但是,在 Android 4.3 中,当使用 Email 应用程序时,附件会在撰写时出现在电子邮件中,但在发送时,在收件人端附件却没有那里。它适用于所有其他经过测试的应用程序(Gmail、Evernote、Drive)。

我不会在发送电子邮件之前删除文件。

这是我的代码。

final Intent fileShareIntent = new Intent(android.content.Intent.ACTION_SEND);
fileShareIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, emailSubject);
fileShareIntent.putExtra(android.content.Intent.EXTRA_TEXT, emailText);
Uri fileUri = STFileProvider.getContentUriForProvidedFile(this,file);
fileShareIntent.putExtra(Intent.EXTRA_STREAM,fileUri);
fileShareIntent.setType(mimeType);
fileShareIntent.putExtra(android.content.Intent.EXTRA_EMAIL, new String[]{prefs.getString("default_email_preference", "")});
startActivity(Intent.createChooser(fileShareIntent,getString(R.string.share_with)));

编辑我发现了一个异常的堆栈跟踪,它符合@CommonsWare 的建议

01-04 17:39:00.430 6828-6828/? W/System.err: java.lang.IllegalArgumentException: column '_data' does not exist
01-04 17:39:00.430 6828-6828/? W/System.err: at android.database.AbstractCursor.getColumnIndexOrThrow(AbstractCursor.java:303)
01-04 17:39:00.430 6828-6828/? W/System.err: at android.database.CursorWrapper.getColumnIndexOrThrow(CursorWrapper.java:78)
01-04 17:39:00.430 6828-6828/? W/System.err: at com.android.email.activity.MessageCompose.getFilePath(MessageCompose.java:21476)
01-04 17:39:00.430 6828-6828/? W/System.err: at com.android.email.activity.MessageCompose.getFilePathOfAttachment(MessageCompose.java:17710)
01-04 17:39:00.430 6828-6828/? W/System.err: at com.android.email.activity.MessageCompose.addAttachment(MessageCompose.java:19140)
01-04 17:39:00.430 6828-6828/? W/System.err: at com.android.email.activity.MessageCompose.access$11000(MessageCompose.java:362)
01-04 17:39:00.430 6828-6828/? W/System.err: at com.android.email.activity.MessageCompose$LoadAttachmentsTaskFromIntent.onProgressUpdate(MessageCompose.java:15277)
01-04 17:39:00.430 6828-6828/? W/System.err: at com.android.email.activity.MessageCompose$LoadAttachmentsTaskFromIntent.onProgressUpdate(MessageCompose.java:15101)
01-04 17:39:00.430 6828-6828/? W/System.err: at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:647)
01-04 17:39:00.430 6828-6828/? W/System.err: at android.os.Handler.dispatchMessage(Handler.java:99)
01-04 17:39:00.430 6828-6828/? W/System.err: at android.os.Looper.loop(Looper.java:176)
01-04 17:39:00.430 6828-6828/? W/System.err: at android.app.ActivityThread.main(ActivityThread.java:5419)
01-04 17:39:00.430 6828-6828/? W/System.err: at java.lang.reflect.Method.invokeNative(Native Method)
01-04 17:39:00.430 6828-6828/? W/System.err: at java.lang.reflect.Method.invoke(Method.java:525)
01-04 17:39:00.430 6828-6828/? W/System.err: at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1046)
01-04 17:39:00.430 6828-6828/? W/System.err: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:862)
01-04 17:39:00.430 6828-6828/? W/System.err: at dalvik.system.NativeStart.main(Native Method)

最佳答案

这是关于数据库 sqlite 的。

有两种可能性:

  1. 您更改了数据库或表中的某些内容。

  1. 您的访问字段可能不正确或不存在于代码中。

解决方案:

  1. 卸载应用并使用 db 中的新更改再次测试。

  2. 更正你的数据库代码。

关于android - Android 4.1/4.3/4.4 电子邮件应用程序中的 FileProvider 失败,列 '_data' 不存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34595995/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com