Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/194.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android错误:没有这样的文件或目录?_Android_File - Fatal编程技术网

Android错误:没有这样的文件或目录?

Android错误:没有这样的文件或目录?,android,file,Android,File,我正试图通过我的android应用程序创建一个数据库,该应用程序正在模拟器上运行 但是,由于我无法直接在我的三星设备上查看数据库(它没有根目录),我正在尝试将数据库文件传输到SD卡。 该文件未成功传输到SD卡,当我尝试在eclipse中打开它时,它不在那里 我在Logcat中得到以下错误: 07-15 14:31:07.035: E/mypck(17369): /data/com.example.multapply/databases/MultapplyDatabase.db: open fai

我正试图通过我的android应用程序创建一个数据库,该应用程序正在模拟器上运行

但是,由于我无法直接在我的三星设备上查看数据库(它没有根目录),我正在尝试将数据库文件传输到SD卡。

该文件未成功传输到SD卡,当我尝试在eclipse中打开它时,它不在那里

我在Logcat中得到以下错误:

07-15 14:31:07.035: E/mypck(17369): /data/com.example.multapply/databases/MultapplyDatabase.db: open failed: ENOENT (No such file or directory)
07-15 14:31:07.035: E/mypck(17369): java.io.FileNotFoundException: /data/com.example.multapply/databases/MultapplyDatabase.db: open failed: ENOENT (No such file or directory)
07-15 14:31:07.035: E/mypck(17369):     at libcore.io.IoBridge.open(IoBridge.java:409)
07-15 14:31:07.035: E/mypck(17369):     at java.io.FileInputStream.<init>(FileInputStream.java:78)
07-15 14:31:07.035: E/mypck(17369):     at com.example.multapply.ExportDatabaseFileTask.copyFile(ExportDatabaseFileTask.java:71)
07-15 14:31:07.035: E/mypck(17369):     at com.example.multapply.ExportDatabaseFileTask.doInBackground(ExportDatabaseFileTask.java:49)
07-15 14:31:07.035: E/mypck(17369):     at com.example.multapply.ExportDatabaseFileTask.doInBackground(ExportDatabaseFileTask.java:1)
07-15 14:31:07.035: E/mypck(17369):     at android.os.AsyncTask$2.call(AsyncTask.java:288)
07-15 14:31:07.035: E/mypck(17369):     at java.util.concurrent.FutureTask.run(FutureTask.java:237)
07-15 14:31:07.035: E/mypck(17369):     at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
07-15 14:31:07.035: E/mypck(17369):     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
07-15 14:31:07.035: E/mypck(17369):     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
07-15 14:31:07.035: E/mypck(17369):     at java.lang.Thread.run(Thread.java:841)
07-15 14:31:07.035: E/mypck(17369): Caused by: libcore.io.ErrnoException: open failed: ENOENT (No such file or directory)
07-15 14:31:07.035: E/mypck(17369):     at libcore.io.Posix.open(Native Method)
07-15 14:31:07.035: E/mypck(17369):     at libcore.io.BlockGuardOs.open(BlockGuardOs.java:110)
07-15 14:31:07.035: E/mypck(17369):     at libcore.io.IoBridge.open(IoBridge.java:393)
07-15 14:31:07.035: E/mypck(17369):     ... 10 more
注意:我之前曾收到过与我询问的“将异常写入包裹”相关的错误,但现在我删除了该错误:

<uses-permission android:name="android.permission.INTERACT_ACROSS_USERS_FULL"/>


从舱单上

不要使用
Environment.getDataDirectory()
获取数据位置。使用
上下文
对象获取数据库和/或数据位置。请参阅方法
getDir()
getDatabasePath()
getExternalFilesDir()

如果将DB文件复制到SD卡,例如复制到:/sdcard/MyApp/Databases/multaplydatabase.DB,则需要从该位置打开该文件

File dbFile = new File("/sdcard/MyApp/Databases/MultapplyDatabase.db");

在清单应用程序中添加以下内容

android:requestLegacyExternalStorage="true"

/数据在sd卡上?当我在eclipse中以DDMS模式查看时,我在sd卡上找不到它?谢谢你的帮助,对不起,我不太清楚你的意思?你认为这就是导致错误的原因吗?我认为@Larry告诉我们,环境是这样的。getDataDirectory()可能指向错误的位置,您无法访问。谢谢,我认为这是正确的,正如我在另一个问题上读到的那样。那么,对于每个文件,我应该指向哪个位置?是的,这是正确的
Environment.getDataDirectory()
为您提供顶级数据目录/data。对于单用户设备(手机),应用程序的数据实际上位于/data/data/com.example.multapply中。在多用户设备(平板电脑)上,它将位于不同的位置,具体取决于使用该设备的(人类)用户。更重要的一点是,不要假设私有目录路径是什么,从api中查询它,例如GetFileDir()谢谢,但是,我试图在该位置的DDMS中打开文件,但没有文件?您编写了将文件传输到SD卡的命令,但您的代码在其他位置搜索该文件。我不明白DDMS与此有什么关系。好的,谢谢,我想我只是在两个文件路径上遇到了问题,即文件的原始位置和我要将其复制到的位置。你可以发布一个编辑,这样我可以调整两个文件路径吗?
File dbFile = new File("/sdcard/MyApp/Databases/MultapplyDatabase.db");
android:requestLegacyExternalStorage="true"