将远程的bundle加载至外部存储器,如何加载外部存储器的bundle文件

我将一个远程服务器的bundle文件通过AndroidStudio加载到了手机的外部存储器中,现在我想将这个手机外部存储器下的bundle文件应用到项目里,我该如何实现?还是说无法读取外部存储器路径下的bundle?
(是手机的外部存储器,不是分配给app的应用内存)
外存路径:Environment.getExternalStorageDirectory() + “/pathToBundle/”
并且在js中通过 jsb.fileUtils.isDirectoryExist(path)也可以校验到是存在的,

1赞

通过改源码(

CocosDashboard\resources.editors\Creator\2.4.4\resources\engine\cocos2d\core\asset-manager\downloader.js),甄别路径是否为外部bundle,是的话,就指定新路径获取资源

改源码 是不是 还得重新编译

代码修改完成后,删除CocosDashboard\resources.editors\Creator\2.4.4\resources\engine\bin.cache文件夹中的内容,重启cocoscreator编辑器,即可生效

这ios应该不能这么搞吧

把路径改成window[‘wx’],这不行啊,因为我的是app,/storage/emulated/0/pathToBundle/room003 这是我最后保存下来的位置,不在app应用内部

这个我不清楚 我目前正在尝试解决安卓的

换成你自己的路径啊,这是我微信小游戏的存储路径。。。


https://docs.cocos.com/creator/manual/zh/scripting/asset-bundle.html 引擎不是支持吗

jsb.fileUtils.getWritablePath()这个获得是分配给app应用的存储路径 我是想使用存储的路径

老哥 我这还是不行啊,这样替换就相当于把要加载的远程地址换成了本地地址,还是读取文件失败,还是说我这样直接写路径是有问题的,我应该怎么写呢,用jsb.fileUtils.getWritablePath() + “pathToBundle/room003” 是不合理的吧,我怀疑是cc.assetManager.loadBundle不能加载外部存储器的地址造成的download

room003是bundle名字?因该是把路径的一部分替换成外部路径,文件的相对路径就没必要改

现在我的问题是,传进来的路径是从androidStudiodown
通过此方法返回的,然后我再脚本中通过cc.assetManager.loadBundle("/storage/emulated/0/pathToBundle/"+“room003” 直接就加载,其实和改download.js的性质是一样的,现在问题就出在去加载这个路径时候会报错,最后报错显示的原因是cc.assetManager.loadBundle去找的是 remote/room003的文件,而不是去找的pathToBundle/room003的文件