我有一个使用包含dojolib的WL 6.1创建的混合应用程序。目前它正在生产iphone,我们正在添加它的android风味。当从控制台上的移动模拟器运行代码时,android和iphone都能正常工作。 ipa文件工作正常。当我在Android设备(三星S4)上运行混合动力时,应用程序会在应用启动日志中引发错误。我有"提供dojo库"关掉。在DDMS日志中,我看到如下语句:
09-09 12:47:12.092: E/AndroidProtocolHandler(20324): Unable to open asset URL: file:///android_asset/www/default/dojo/_base/declare.js
09-09 12:47:12.263: E/AndroidProtocolHandler(20324): Unable to open asset URL: file:///android_asset/www/default/dojo/_base/connect.js
09-09 12:47:12.303: E/AndroidProtocolHandler(20324): Unable to open asset URL: file:///android_asset/www/default/dojo/_base/event.js
在eclipse的android项目中查看,我在" assets / www / default / dojo / _base"中看到了这些文件。目录。问题是当我查看APK文件时," _base"目录不存在。任何帮助,以了解它为什么会丢失?
答案 0 :(得分:0)
您的应用程序应该使用dojo文件的编译版本,它似乎不是。 我会检查
wlCommonInit函数包含以下内容:
function wlCommonInit(){ require([" layers / core-web-layer"," layers / mobile-ui-layer"],dojoInit); }
答案 1 :(得分:0)
我还找到了解决android包装错误的另一种方法。正如我前面提到的,一种方法是使用DojoBuildFactory来创建一个新的图层,其中嵌入了文件。这与WL用于创建core-web-layer和mobile-ui-layer的过程相同。我有一个团队正在研究这个问题,但是文档很少,而且这是一个耗时的过程。
虽然他们这样做,但我发现我认为解决问题的方法更为清晰。有效地打开一个未签名的apk,插入文件,然后签署APK。工作就像一个魅力。以下是我使用的步骤:
现在你有一个工作的apk,其中包含资源中以“_”开头的文件/目录。