在为 android 开发 AIR 应用程序时,我遇到了一个非常奇怪的情况: - 当我尝试将文件复制到 sdcard 时,出现错误 #3001 - “文件或目录访问被拒绝”。我在清单中添加了以下权限,但没有解决问题:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
为了避免任何碰撞,我曾尝试在启动应用程序之前拔下 USB 线,但这无济于事。sdcard“锁定”按钮保持“解锁”状态。我也尝试过使用另一个 sdcard,但结果是一样的。
android的版本是4.0.4,air sdk是3.2
任何建议将不胜感激。
2014 年 4 月 8 日更新
抱歉,实际上复制操作会引发错误 3002 - 文件或目录存在,并且错误 3001 被前面的destinationDir.createDirectory() 皱眉。然而它变得更加难以理解,因为 sd 卡是空的,我看不到任何东西。正如我从调试器看到的,目的地的“存在”属性是假的,所以我真的不明白为什么它会抛出错误 3002。
这是引发异常的来源:
var sourceDir:File = File.applicationDirectory.resolvePath(Model.INTERNAL_ASSETS_FOLDER);
var destination:File = Model.externalAssetsDirectory;
try {
if (!destination.exists) {
destination.createDirectory();
}
sourceDir.copyTo(destination, true);
} catch (e:Error) {
trace(e.message)
}