在Android

时间:2015-11-08 04:33:47

标签: android

我在Android应用程序中遇到问题,每当我尝试加载从电子邮件下载的文件时,我都收到java.io.FileNotFoundException错误。这很奇怪,因为该文件清楚地显示在“下载”列表中,但是当我的应用程序尝试打开它时似乎找不到它。该错误引用了一个“/ document”目录,该目录在设备上实际上不存在。这类似乎可能与通过意图传递文件的某种机制有关,但我遗漏了一些东西。我在运行4.4.2的三星Galaxy Tab 4以及不同版本的Android Emulator上尝试这个。我看到的每个地方都遇到同样的问题。下面,我已经包含了错误消息。

对此有任何帮助将不胜感激。

感谢!!!

  

11-07 23:23:13.324 12193-12193 / com.xxxxxx.yyyyyyyyy E / ImportActivity:   文件选择错误11-07 23:23:13.324 12193-12193 / com.xxxxxx.yyyyyyyyy   E / ImportActivity:java.io.FileNotFoundException:/ document / 1677:open   失败:ENOENT(没有这样的文件或目录)11-07 23:23:13.324   12193-12193 / com.xxxxxx.yyyyyyyyy E / ImportActivity:at   libcore.io.IoBridge.open(IoBridge.java:409)11-07 23:23:13.324   12193-12193 / com.xxxxxx.yyyyyyyyy E / ImportActivity:at   java.io.FileInputStream。(FileInputStream.java:78)11-07   23:23:13.324 12193-12193 / com.xxxxxx.yyyyyyyyy E / ImportActivity:at   java.io.FileReader。(FileReader.java:42)11-07 23:23:13.324   12193-12193 / com.xxxxxx.yyyyyyyyy E / ImportActivity:at   com.xxxxxx.yyyyyyyyy.ImportActivity.onActivityResult(ImportActivity.java:210)   11-07 23:23:13.324 12193-12193 / com.xxxxxx.yyyyyyyyy E / ImportActivity:   在android.app.Activity.dispatchActivityResult(Activity.java:5643)   11-07 23:23:13.324 12193-12193 / com.xxxxxx.yyyyyyyyy E / ImportActivity:   在android.app.ActivityThread.deliverResults(ActivityThread.java:3677)   11-07 23:23:13.324 12193-12193 / com.xxxxxx.yyyyyyyyy E / ImportActivity:   在   android.app.ActivityThread.handleSendResult(ActivityThread.java:3724)   11-07 23:23:13.324 12193-12193 / com.xxxxxx.yyyyyyyyy E / ImportActivity:   在android.app.ActivityThread.access $ 1400(ActivityThread.java:175)   11-07 23:23:13.324 12193-12193 / com.xxxxxx.yyyyyyyyy E / ImportActivity:   在   android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1356)   11-07 23:23:13.324 12193-12193 / com.xxxxxx.yyyyyyyyy E / ImportActivity:   在android.os.Handler.dispatchMessage(Handler.java:102)11-07   23:23:13.324 12193-12193 / com.xxxxxx.yyyyyyyyy E / ImportActivity:at   android.os.Looper.loop(Looper.java:146)11-07 23:23:13.324   12193-12193 / com.xxxxxx.yyyyyyyyy E / ImportActivity:at   android.app.ActivityThread.main(ActivityThread.java:5602)11-07   23:23:13.324 12193-12193 / com.xxxxxx.yyyyyyyyy E / ImportActivity:at   java.lang.reflect.Method.invokeNative(Native Method)11-07   23:23:13.324 12193-12193 / com.xxxxxx.yyyyyyyyy E / ImportActivity:at   java.lang.reflect.Method.invoke(Method.java:515)11-07 23:23:13.324   12193-12193 / com.xxxxxx.yyyyyyyyy E / ImportActivity:at

1 个答案:

答案 0 :(得分:0)

 /document/1677

这不是文件系统路径,而是内容提供者路径的一部分。

您将看到url.getPath()的完整路径。

您可以使用

打开文档的输入流
getContentResolver.openStream(url);