【发布时间】:2014-01-30 08:06:29
【问题描述】:
我正在尝试将 .tar 文件从 android 资产复制到 sdcard,但在复制文件时出现 IOException。我正在使用上一个线程中的代码How to copy files from 'assets' folder to sdcard?
这里是 LogCat 文件。我在 ASyncTask 中执行所有这些操作,但我也在主 UI 线程上尝试过,但仍然出现此异常。
01-11 06:51:49.925: E/tag(3881): Failed to copy asset file: temp.tar
01-11 06:51:49.925: E/tag(3881): java.io.IOException
01-11 06:51:49.925: E/tag(3881): at android.content.res.AssetManager.readAsset(Native Method)
01-11 06:51:49.925: E/tag(3881): at android.content.res.AssetManager.access$700(AssetManager.java:36)
01-11 06:51:49.925: E/tag(3881): at android.content.res.AssetManager$AssetInputStream.read(AssetManager.java:571)
01-11 06:51:49.925: E/tag(3881): at com.example.apptest.MainActivity.copyFile(MainActivity.java:130)
01-11 06:51:49.925: E/tag(3881): at com.example.apptest.MainActivity.copyAssets(MainActivity.java:116)
01-11 06:51:49.925: E/tag(3881): at com.example.apptest.MainActivity.access$0(MainActivity.java:97)
01-11 06:51:49.925: E/tag(3881): at com.example.apptest.MainActivity$1.doInBackground(MainActivity.java:32)
01-11 06:51:49.925: E/tag(3881): at com.example.apptest.MyASyncTask.doInBackground(MyASyncTask.java:1)
01-11 06:51:49.925: E/tag(3881): at android.os.AsyncTask$2.call(AsyncTask.java:185)
01-11 06:51:49.925: E/tag(3881): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
01-11 06:51:49.925: E/tag(3881): at java.util.concurrent.FutureTask.run(FutureTask.java:137)
01-11 06:51:49.925: E/tag(3881): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1068)
01-11 06:51:49.925: E/tag(3881): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:561)
01-11 06:51:49.925: E/tag(3881): at java.lang.Thread.run(Thread.java:1096)
【问题讨论】:
-
这很奇怪。我也遇到了这个异常,但是我的文件被正确复制到了 sdcard,所以我忽略了这个异常:)
-
顺便说一句,您检查了外部存储吗?文件是否存在?
-
我得到了解决方案。我已经发布了。
-
我知道,但你能回答这个问题吗?顺便说一句,您检查过外部存储吗?文件是否存在?
标签: java android assets file-copying