天狼
天狼
  • 发布:2015-11-13 14:32
  • 更新:2020-01-03 17:40
  • 阅读:17241

安装wgt文件失败[-1205]:WGT安装包中manifest.json文件的version版本不匹配

分类:5+ SDK
wgt

用wgt升级的方式只能升一次。

问题细节如下:
1.7.21做了apk安装包
1.7.22是wgt升级包
从21到22的过程成功。

后来发行了23版本,从22到23出现如下错误

把应用卸载,
重新安装1.7.21的apk,
从21直接升级23成功

2015-11-13 14:32 1 条评论 负责人:无 分享
已邀请:
柏柏

柏柏

我也遇到!新手,等待解决中...

天狼

天狼 (作者)

http://ask.dcloud.net.cn/question/11143
这个也许可以暂时解决这个问题

r***@163.com

r***@163.com

我是在ios版本上出现这个问题,一直没解决,第一次进去是正常的,退出后再进去就报这个错误,杀死进程再次进去又正常了,一直找不到原因

  • 老向

    你是用plus.runtime.version获取的软件当前版本吧!

    2016-10-17 13:18

  • r***@163.com

    回复 老向:不是的,我是自己在js文件里写的配置文件定义的版本号,然后修改manifest.json的版本号跟我自己定义的一样。最后跟后台传过来的版本号比对,现在这个问题解决了。我应用上的一个退出按钮导致的。现在都解决好了,谢谢关心

    2016-10-28 10:19

老向

老向

用plus.runtime.getProperty来获取软件的版本号!
再比较是不是要升级。
用plus.runtime.version取的软件版本号是APK的版本号!
用WGT方式升级后,不是重新安装APK,只是更新了WWW下的资料。
所以用plus.runtime.version取的版本号是原来的版本号。
我的例子:
<script type="text/javascript" charset="utf-8">
var wgtUrl;
var wgtver;
mui.init();
mui.plusReady(function() {
getAppInfo();

});
//升级检查列表,用Ajx从服务器获取最新的软件版本号
//返回的是JSON格式如{“version”:“1.0.4”,“downloadurl”:“http://xxxx.com/xxxx.wgt”}
function chkupapk() {
var GetDateaddr = "robotapp/json_postdata_func/public/";
var DateMyRequest = new Object();
DateMyRequest.type = "public_appversion";
var DateRequestResponse = new Object();
DateRequestResponse.Success = function(Result) {
if (Result == "error") {
ShowError();
}
var DateMyBResponse = new Object();
DateMyBResponse = JSON.parse(Result); //JSON反序列化,

if (DateMyBResponse.errmsg == "ok") {
if(compareVersion(wgtver,DateMyBResponse.resultmsg.version)){
wgtUrl=DateMyBResponse.resultmsg.downloadurl;
plus.nativeUI.confirm("发现新版本!是否要更新?",downWgt,"自动更新",["立即更新","跳过此版本","取  消"]);
}

}
};
DateRequestResponse.Error = function(Result) {
ShowError();
};

RESTRequest(DateMyRequest, DateRequestResponse,GetDateaddr); //发送POST
}
/**

  • 比较版本大小,如果新版本nv大于旧版本ov则返回true,否则返回false
  • @param {String} ov
  • @param {String} nv
  • @returN {Boolean}
    */
    function compareVersion(ov, nv) {
    if (!ov || !nv || ov == "" || nv == "") {
    return false;
    }
    var b = false,
    ova = ov.split(".", 4),
    nva = nv.split(".", 4);
    for (var i = 0; i < ova.length && i < nva.length; i++) {
    var so = ova[i],
    no = parseInt(so),
    sn = nva[i],
    nn = parseInt(sn);
    if (nn > no || sn.length > so.length) {
    return true;
    } else if (nn < no) {
    return false;
    }
    }
    if (nva.length > ova.length && 0 == nv.indexOf(ov)) {
    return true;
    }
    }

// 下载安装文件
var downWgt=function (i){
if(0==i.index){
plus.downloader.createDownload( wgtUrl, {filename:"_doc/update/"}, function(d,status){
if ( status == 200 ) {
console.log("下载wgt成功:"+d.filename);
installWgt(d.filename); // 安装wgt包
} else {
console.log("下载wgt失败!");
plus.nativeUI.alert("下载wgt失败!");
}
plus.nativeUI.closeWaiting();
}).start();
}

}

// 更新应用资源
function installWgt(path){
plus.runtime.install(path,{},function(){
plus.nativeUI.closeWaiting();
console.log("安装wgt文件成功!");
plus.nativeUI.alert("应用资源更新完成!",function(){
plus.runtime.restart();
});
},function(e){
plus.nativeUI.closeWaiting();
console.log("安装wgt文件失败["+e.code+"]:"+e.message);
plus.nativeUI.alert("安装更新文件失败["+e.code+"]:"+e.message);
});
}

function getAppInfo() {
plus.runtime.getProperty( plus.runtime.appid, function ( wgtinfo ) {
wgtver= wgtinfo.version;
chkupapk();
});
}

</script>

y***@gmail.com

y***@gmail.com

我也遇到了这个问题,现已解决.
一开始以为是自己生成的&quot;资源升级包&quot;有问题,重新生成后还是不行,最后发现是&quot;资源升级包&quot;在升级服务器上放错了位置,导致APP请求的到升级包是旧的,当然里面的版本号不对了.这里有个方法可以直观查看是否是这方面的错误,就是查看手机上下载下来的升级包(用文件管理器搜索升级包文件名,在手机内部存储中)中版本号到底是否正确: 将该文件传到电脑上,加上.rar扩展名可直接打开查看里面的内容 ,可看到manifest.json中version是否正确就OK了.

2***@qq.com

2***@qq.com - 90it

这个问题我遇到, 差点坑死,
1.首先我们在hbuilder的manifess.json文件,先把版本号升一级,如apk文件是1.1.0,那么制作升级包之前就先改成1.1.1,然后制作成升级包wgt文件

  1. 重点来了,找到升级包文件,重命名为1.1.1.wgt.rar,然后解压,打开manifess.json文件,看看里面的版本号是不是1.1.1.
  2. 我之前无论在hbuider的json文件怎么设置版本,但是升级包里面一直都是1.1.0,导致一直升级失败.报这个错的朋友先把自己制作的升级包解压出来,看看跟自己设置的版本号是不是一致.
  3. 这个bug应该是hbuilder软件自身问题,建议重启一下,在制作升级包
  • 4***@qq.com

    解压,打开manifess.json文件,版本号和更新填写的版本号不一致怎么办呢

    2019-05-09 09:38

Spring_CTH

Spring_CTH - Dcloud粉

真机测试就可以 打包成app后 在升级就报version版本不匹配 你说气不气。 当前版本2.3 wgt版本是2.4 为啥 还显示不匹配

sunfeh

sunfeh

同样的问题

c***@163.com

c***@163.com

同样的问题

该问题目前已经被锁定, 无法添加新回复