android不能读取包外的asset bundle吗?

放在服务端的asset bundle
下载解压后放在android的Environment.getExternalStoragePublicDirectory(DIRECTORY_DOWNLOADS)
目录下
读取时报错:
2021-09-15 19:25:07.733 23892-24459/com.xxx.cccc.staging D/jswrapper: JS: [9-15 19:25:07:732] lessonMapCom.js->init: mapPath //////////////////// : /storage/emulated/0/Download/cache_data/1819/unit_map_1819_1819
2021-09-15 19:25:13.783 23892-24459/com.xxx.cccc.staging D/jswrapper: JS: [WARN]: Read file failed: path: assets/unit_map_1819_1819/config.json
2021-09-15 19:25:13.786 23892-24459/com.xxx.cccc.staging D/jswrapper: JS: [ERROR]: [9-15 19:25:13:786] Task.js->onComplete: Read file failed: path: assets/unit_map_1819_1819/config.json Error: Read file failed: path: assets/unit_map_1819_1819/config.json
at Object.readFile (jsb-adapter/jsb-engine.js:3142:13)
at readJson (jsb-adapter/jsb-engine.js:3168:13)
at parseJson (jsb-adapter/jsb-engine.js:3465:3)
at download (jsb-adapter/jsb-engine.js:3351:5)
at downloadJson (jsb-adapter/jsb-engine.js:3477:3)
at downloadBundle (jsb-adapter/jsb-engine.js:3499:3)
at invoke (src/cocos2d-jsb.js:18783:15)
at process (src/cocos2d-jsb.js:18793:15)
at Object.retry (src/cocos2d-jsb.js:20380:9)
at src/cocos2d-jsb.js:20383:19

这个怎么整啊,有没有有经验的朋友呀
或者提供点思路

可以的需要jsb.fileUtils.setSearchPaths()设置下,用GooglePAD做热更也这样完全不需要自己建服务器出流量费

//增加android资源搜索路径
var androidResCachePath = icacheManager.instance.getCacheDataPath()
cc.log(‘loadingCom start androidResCachePath:’, androidResCachePath)
// 默认的搜索路径
var searchPaths = jsb.fileUtils.getSearchPaths();
cc.log(‘loadingCom start searchPaths1:’, searchPaths)
// hotUpdateSearchPaths 会前置在 searchPaths 数组的开头
searchPaths.unshift(androidResCachePath)
// Array.prototype.unshift.apply(searchPaths, androidResCachePath);
cc.log(‘loadingCom start searchPaths2:’, searchPaths)
jsb.fileUtils.setSearchPaths(searchPaths);
日志:
loadingCom start androidResCachePath: /storage/emulated/0/Download/cache_data
loadingCom start searchPaths1: {“0”:"@assets/"}
loadingCom start searchPaths2: {“0”:"/storage/emulated/0/Download/cache_data",“1”:"@assets/"}

设置了一下 还是不行,难道路径有讲究吗?

具体路径要自己调咯…我是下载和设置到jsb.fileUtils.getWritablePath()…2.4版本的

jsb.fileUtils.getWritablePath()这个路径是类似沙盒的路径,我这也是可以的
主要我这个是Environment的。。。。估计有点区别

搞定了
引擎读取asset bundle的时候 应该使用jsb.fileUtils.getWritablePath()方法
我直接把jsb.fileUtils.getWritablePath()的返回值改成Environment.getExternalStoragePublicDirectory(DIRECTORY_DOWNLOADS)
自然就好了,不过所有的缓存都暴露出来了,做好加密问题应该也不大

该主题在最后一个回复创建后14天后自动关闭。不再允许新的回复。