AndroidProtocolHandler 使用 sencha touch 时出错
Posted
技术标签:
【中文标题】AndroidProtocolHandler 使用 sencha touch 时出错【英文标题】:AndroidProtocolHandler Error when using sencha touch 【发布时间】:2016-12-10 20:43:56 【问题描述】:我正在尝试在 Sencha Touch for android 上构建一个应用程序,所以我使用 Cordova 将它放在我的设备上。
我面临的问题是在我的计算机上一切正常,但在 android 上,设备无法找到并读取 每个 商店的语言环境文件(我已经在其他商店进行了测试安卓设备)。 这是logcat上的错误:
E/AndroidProtocolHandler: Unable to open asset URL: file:///android_asset/www/app/store/recipes/list.json?_dc=1481398604306&node=ext-data-treestore-1-root&page=1&start=0&limit=25
E/AndroidProtocolHandler: Unable to open asset URL: file:///android_asset/www/app/store/recipes/pates.json
这是我用来阅读“pates.json”的商店:
var ingredientsData = Ext.create('Ext.data.Store',
model: 'fr.ESIR.GreenVentory.model.IngredientListModel',
autoLoad: true,
proxy:
type: 'ajax',
noCache: false,
enablePagingParams: false,
limitParam: null,
url: "./app/store/recipes/pates.json",
reader:
rootProperty: 'ingredients',
totalProperty: 'totalCount'
);
我尝试加载的文件本地存储在“app/store/recipes/”中
如果有人有解决方案,我很高兴知道它
【问题讨论】:
app 目录是否在 www 目录中,在 assets 中? 应用程序存储在/data/app/fr.ESIR.GreenVentory-1/base.apk,数据路径在/data/user/0/fr.ESIR.GreenVentory 我在询问“我尝试加载的文件在本地存储在”app/store/recipes/”中在 IDE 中打开您的 Android 项目并单击“pates.json”文件并请截取结构视图的屏幕截图以添加到您的问题中 其实我用的是Sencha Touch API,有了这个你就可以“轻松”地正常构建web应用了。但是,好的是您可以将 Cordova 与它集成,然后 Cordova 将您的 web 应用程序转换为 Android 应用程序。但是您的评论对我有帮助,我只是从 apk 中提取所有文件,寻找一个不存在的“pates.json”... 【参考方案1】:我解决了我自己的问题: 所有数据都存储在 sencha 应用程序的 app/store 中,当我使用 Cordova 构建 Android 应用程序时,它不使用 json 文件,因为我没有指定文件位置。
所以我在项目根目录上创建了一个数据文件夹,将我的 json 文件和包含它们的文件夹放在数据文件夹中。
不要忘记更新 json 文件的不同引用
之后,它仍然可以在网络版本上运行,但不能在 Android 上运行,因为 cordova 不集成您的文件。 Cordova 读取项目根目录中的 app.json 文件。转到文件的“资源”部分。通常你有这样的东西:
/**
* Extra resources to be copied along when build
*/
"resources": [
"resources/images",
"resources/icons",
"resources/startup",
"data/*",
"data/recipes"
]
只需添加包含您的文件的文件夹的位置,cordova 应该在编译时集成它们
【讨论】:
很高兴您修复了它,这些 json/web 文件(所有 www 目录)可能应该在资产中(因为它们不是 android 资源),因此您应该更新您的 gradle 以将它们包含在其中。这应该意味着您不必修复路径(正如您从错误日志中看到的那样,它默认在资产中查找)以上是关于AndroidProtocolHandler 使用 sencha touch 时出错的主要内容,如果未能解决你的问题,请参考以下文章
在使用加载数据流步骤的猪中,使用(使用 PigStorage)和不使用它有啥区别?
Qt静态编译时使用OpenSSL有三种方式(不使用,动态使用,静态使用,默认是动态使用)