我做的事情非常简单 - 所以这里肯定会有一些愚蠢的错误。我用以下方式构建我的游戏:
adt -package -target apk-debug -connect -storetype pkcs12 -keystore "cert\mygame.p12" -storepass fd "dist\mygame-debug.apk" "application.xml" -C bin . -C "icons/android" .
使用bin /文件夹中的swfs和所需数据文件。根据Adobe文档,-C指令应该使它们以root身份运行。然后在代码中,我所做的就是:
var file:File = File.applicationDirectory.resolvePath("data.json");
var fin:FileStream = new FileStream();
fin.open(file, FileMode.READ); // error 3003 triggered!!
路径已解析为" app:/data.json"这是正确的,因为它生活在swf所在的同一个地方。
那我为什么会收到错误3003?非常感谢任何见解!
我用Air 3.7建造。
谢谢!
答案 0 :(得分:1)
确保您在app.xml
文件中启用了此权限。
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
答案 1 :(得分:0)
File.applicationDrectory
表示您的应用在设备上安装的文件夹。在Android中,这个目录受到严密保护,你需要从那里读取root权限(我假设你没有)。 File.applicationStorageDirectory
是一个更可取的读/写位置,这是在您的应用程序“沙盒”中(没有其他应用程序或用户可以在没有root访问权限的情况下访问它,但您的应用程序可以)。
答案 2 :(得分:0)
首先从labs.adobe.com将您的空气更新为13 如果更新的air sdk将无法解决问题 - 请尝试使用URLLoader而不是FileStream