【问题标题】:Adobe Air File.open generates error #3003 on AndroidAdobe Air File.open 在 Android 上生成错误 #3003
【发布时间】:2014-03-18 12:10:16
【问题描述】:

我正在做一些非常简单的事情 - 所以这里一定有愚蠢的错误。我正在构建我的游戏:

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 和所需的数据文件。根据 Adob​​e docs,该 -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”,这是正确的,因为它位于 apk 中与 swf 相同的位置。

那么为什么我会收到错误 3003?非常感谢任何见解!

我正在使用 Air 3.7 进行构建。

谢谢!

【问题讨论】:

    标签: android actionscript-3 air


    【解决方案1】:

    确保您在 app.xml 文件中启用了此权限。

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

    【讨论】:

      【解决方案2】:

      File.applicationDrectory 表示您的应用安装到设备上的文件夹。在 Android 中,此目录受到严格保护,您需要 root 访问权限才能从那里读取(我假设您没有)。 File.applicationStorageDirectory 是一个更可取的读取/写入位置,它位于您的应用程序“沙箱”中(没有其他应用程序或用户可以在没有 root 访问权限的情况下访问它,但您的应用程序可以)。

      【讨论】:

        【解决方案3】:

        首先从 labs.adobe.com 将您的空气更新到 13 如果更新的 air sdk 不能解决问题 - 尝试使用 URLLoader 而不是 FileStream

        【讨论】:

          猜你喜欢
          • 2016-12-23
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2010-11-23
          • 2017-06-16
          • 2014-08-12
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多