Creator V1.41和Create V1.61都试过了,标准教程上的tutorial-hot-update,无法正常更新。用VS2017编译的EXE是可以看到更新的,但将代码编译到Android上的apk,就无论如何也无法正常更新。点“检查更新”和自定义更新,都没有反应。。。
有没有大神在管理这个?那个版本的热更新可以正常使用?
… 哪个版本的热更新都能正常使用, 前提是:你要了解热更新的原理与流程, 才能发现流程的哪个环节出现了问题
1.42和1.61都试过。现在的那个官方例子,真的能运行么?原理大家都明白,文档看了无数次。Creator1.61的编译成windows格式,成功过一次。但是发布到安卓上,一次也没有成功过。。。手机,pad都试过。。。不是那个环节出问题,而是第一步,就走不通。没有机会,出其他问题。点按钮没有反应。。按理说,这个热更的东东,0.8的版本,就可以用了。。。
可以用,我的从1.5到现在1.6.1上线项目一自能更新,从没出过问题
我主要是还没有机会出错,在一开始就卡住了。我在局网上建了一个Web服务器http://192.168.1.55/
更新的版本放到/hot1/remote-assets/目录下。没有改代码,只改了url。。大侠看下,正不正确:
HotUpdate.js
改:
var customManifestStr = JSON.stringify({
“packageUrl”: “http://192.168.1.55/hot1/remote-assets/”,
“remoteManifestUrl”: “http://192.168.1.55/hot1/remote-assets/project.manifest”,
“remoteVersionUrl”: “http://192.168.1.55/hot1/remote-assets/version.manifest”,
“version”: “0.9.0”,
assets/project.mainfest
改:
“packageUrl”:“http://192.168.1.55/hot1/remote-assets/",“remoteManifestUrl”:“http://192.168.1.55/hot1/remote-assets/project.manifest”,“remoteVersionUrl”:“http://192.168.1.55/hot1/remote-assets/version.manifest”,“version”:"1.0.0”
assets/version.mainfest
改:
{“packageUrl”:“http://192.168.1.55/hot1/remote-assets/",“remoteManifestUrl”:“http://192.168.1.55/hot1/remote-assets/project.manifest”,“remoteVersionUrl”:“http://192.168.1.55/hot1/remote-assets/version.manifest”,“version”:"1.0.0”}
http://192.168.1.55/hot1/remote-assets/project.manifest
改:
{“packageUrl”:“http://192.168.1.55/hot1/remote-assets/",“remoteManifestUrl”:“http://192.168.1.55/hot1/remote-assets/project.manifest”,“remoteVersionUrl”:“http://192.168.1.55/hot1/remote-assets/version.manifest”,“version”:"1.0.1”
http://192.168.1.55/hot1/remote-assets/version.mainfest
改:
{“packageUrl”:“http://192.168.1.55/hot1/remote-assets/",“remoteManifestUrl”:“http://192.168.1.55/hot1/remote-assets/project.manifest”,“remoteVersionUrl”:“http://192.168.1.55/hot1/remote-assets/version.manifest”,“version”:"1.0.1”}
HotUpdate.js assets/project.mainfest assets/version.mainfest
这些东西不需要你自己改
用node generate.js 打包生成后可以直接用的
非常,非常感谢大家,我终于完全成功了。。。从1.5X到1.61我都试过了。。。在这个中间,我发现了许多技术"难点"。
第一个就是:编译环境,我在测试之中发现,安卓的编译环境,并不是特别稳定。我们在安装或删除一些软件后,APK的编译
本身,都可能出问题。可能会引起官方热更新例子,无法编译、编译后无法安装、安装后无法运行、运行后直接死掉,这几
种情况,我都碰到过。处理的方法很笨,也很有效,就是做一个hello例子工程,不断调整自已的编译环境,直到APK在真机
上可以正常运行。
第二个就是Web服务器的问题,我在内网服务器试过许多次,都没有成功,后来看到C友也碰到同样的问题,就在外网上试。
。。结果一下通了。。。按理说,在内网上也能通,但是当时在内网上就是不通。。。代码没有任何更改。。拿到外网上就
通了。
第三个就是 mainfest的格式问题,我开始没有用官方推荐的version_generator.js生成mainfest文件。结果总是下载出错,
一直在代码里找原因。。。这个破问题,把我害惨了。。。后来无意中看官方自带的mainfest内容格式,与我的不一样,才
明白。。。是我的version_generator.js出错了。
第四个是构建的问题,这个也可以让你黑屏。我的具体做法是,在改好了新版本后,先构建一次,然后用
version_generator.js生成一次mainfest文件;然后再构建一次。。。再改main.js(官方的好像可以自动改)。。。最后再编
译出APK。。。
我是这样成功的,现在心里很清楚,可是当时,各种错在一起。。。那个伤心。。。
node generate.js 会生产HotUpdate.js?
楼主要养成仔细看文档,老实按步骤的习惯,,