热更新求助, 检查热更新,报的事件码是UPDATE_PROGRESSION

检查热更新了一个jsb.EventAssetsManager.UPDATE_PROGRESSION的事件码。预期的事件 应该是 NEW_VERSION_FOUND 或者 ALREADY_UP_TO_DATE
Creator 2.2.0
平台,模拟器

输出log

log, 如图。

,全部代码如下,大佬帮忙看看

`const { ccclass, property } = cc._decorator;

@ccclass
export default class UpgradeManager extends cc.Component {

public static Instance: UpgradeManager = null;

@property({
	type: cc.Asset
})
private manifestUrl: cc.Asset = null;

private storagePath: string = null;
private isUpdating: boolean = false;
private isCanRetry: boolean = false;

private fileProgress: number = 0;
private byteProgress: number = 0;
private failCount: number = 0;

private assetsManager: jsb.AssetsManager = null;


onLoad() {
	UpgradeManager.Instance = this;
}

start() {

	this.init();
}

public init() {
	Debugger.isDebug = true;
	if (!CC_JSB) {
		Debugger.warn('仅 Native(Android/iOS) 平台支持热更新');
		return;
	}
	this.storagePath = (jsb.fileUtils ? jsb.fileUtils.getWritablePath() : '/') + 'remote-asset';
	Debugger.log('Storage path for remote asset : ' + this.storagePath);
	this.assetsManager = new jsb.AssetsManager("", this.storagePath);
	if (cc.sys.os == cc.sys.OS_ANDROID) {
		this.assetsManager.setMaxConcurrentTask(3);
	}
	this.checkUpdate();
}

private checkUpdate() {
	if (this.isUpdating) {
		Debugger.error('正在更新中 ...');
		return;
	}
	if (this.assetsManager.getState() == jsb.AssetsManager.State.UNINITED) {
		let url = this.manifestUrl.nativeUrl;
		if (cc.loader.md5Pipe) {
			url = cc.loader.md5Pipe.transformURL(url);
		}
		Debugger.log("url:", url);
		this.assetsManager.loadLocalManifest(url);
	}
	if (!this.assetsManager.getLocalManifest() || !this.assetsManager.getLocalManifest().isLoaded()) {
		Debugger.error('加载本地 manifest 文件失败');
	}
	this.assetsManager.setEventCallback(this.onCheckUpdateCallBack.bind(this));
	this.assetsManager.checkUpdate();

	this.isUpdating = true;
}

private execUpdate() {
	if (this.assetsManager && !this.isUpdating) {
		this.assetsManager.setEventCallback(this.onUpdateCallBack.bind(this));
		if (this.assetsManager.getState() == jsb.AssetsManager.State.UNINITED) {
			let url = this.manifestUrl.nativeUrl;
			if (cc.loader.md5Pipe) {
				url = cc.loader.md5Pipe.transformURL(url);
			}
			this.assetsManager.loadLocalManifest(url);
		}
		this.failCount = 0;
		this.assetsManager.update();
		this.isUpdating = true;
	}
}

private onCheckUpdateCallBack(event) {
	// let totalBytes = 0;

	console.log("onCheckUpdateCallBack:", event.getEventCode(), event.getMessage());

	// console.log("ERROR_NO_LOCAL_MANIFEST:", jsb.EventAssetsManager.ERROR_NO_LOCAL_MANIFEST);
	// console.log("ERROR_DOWNLOAD_MANIFEST:", jsb.EventAssetsManager.ERROR_DOWNLOAD_MANIFEST);
	// console.log("ERROR_PARSE_MANIFEST:", jsb.EventAssetsManager.ERROR_PARSE_MANIFEST);


	// console.log("ALREADY_UP_TO_DATE:", jsb.EventAssetsManager.ALREADY_UP_TO_DATE);
	// console.log("NEW_VERSION_FOUND:", jsb.EventAssetsManager.NEW_VERSION_FOUND);
	// console.log("UPDATE_PROGRESSION:", jsb.EventAssetsManager.UPDATE_PROGRESSION);

	// console.log("UPDATE_FINISHED:", jsb.EventAssetsManager.UPDATE_FINISHED);
	// console.log("UPDATE_FAILED:", jsb.EventAssetsManager.UPDATE_FAILED);
	// console.log("UPDATE_NEEDRESTART:", jsb.EventAssetsManager.UPDATE_NEEDRESTART);

	// console.log("ERROR_UPDATING:", jsb.EventAssetsManager.ERROR_UPDATING);
	// console.log("ERROR_DECOMPRESS:", jsb.EventAssetsManager.ERROR_DECOMPRESS);

	let code = event.getEventCode();
	let msg = '';
	switch (code) {
		case jsb.EventAssetsManager.NEW_VERSION_FOUND:
			// totalBytes = event.getTotalBytes();
			Debugger.error("发现新版本, 开始更新...");
			this.fileProgress = 0;
			this.byteProgress = 0;
			this.onNewVersionFound();
			break;
		case jsb.EventAssetsManager.ALREADY_UP_TO_DATE:
			Debugger.error("已经更新到最新版本");
			break;
		case jsb.EventAssetsManager.ERROR_NO_LOCAL_MANIFEST:
			Debugger.error("没有加载到本地 Manifest 文件,跳过更新");
			break;
		case jsb.EventAssetsManager.ERROR_DOWNLOAD_MANIFEST:
		case jsb.EventAssetsManager.ERROR_PARSE_MANIFEST:
			Debugger.error("下载 Manifest 文件失败, 跳过更新");
			break;
		case jsb.EventAssetsManager.UPDATE_PROGRESSION:
			this.byteProgress = event.getPercent();
			this.fileProgress = event.getPercentByFile();

			Debugger.error("files:" + `${event.getDownloadedFiles()}/${event.getTotalFiles()}`);
			Debugger.error("bytes:" + `${event.getDownloadedBytes()}/${event.getTotalBytes()}`);
			if (event.getMessage()) {
				Debugger.error('Updated file: ' + event.getMessage());
			}
			break;
		default:
			break;
	}
	this.assetsManager.setEventCallback(null);
	this.isUpdating = false;
}

private onUpdateCallBack(event) {
	let needReStart = false;
	let failed = false;
	switch (event.getEventCode()) {

		case jsb.EventAssetsManager.ALREADY_UP_TO_DATE:
			Debugger.error("已经更新到最新版本");
			break;
		case jsb.EventAssetsManager.ERROR_NO_LOCAL_MANIFEST:
			Debugger.error("没有加载到本地 Manifest 文件,跳过更新");
			failed = true;
			break;
		case jsb.EventAssetsManager.UPDATE_PROGRESSION:
			this.byteProgress = event.getPercent();
			this.fileProgress = event.getPercentByFile();

			Debugger.error("files:" + `${event.getDownloadedFiles()}/${event.getTotalFiles()}`);
			Debugger.error("bytes:" + `${event.getDownloadedBytes()}/${event.getTotalBytes()}`);
			if (event.getMessage()) {
				Debugger.error('Updated file: ' + event.getMessage());
			}
			break;
		case jsb.EventAssetsManager.ERROR_DOWNLOAD_MANIFEST:
		case jsb.EventAssetsManager.ERROR_PARSE_MANIFEST:
			Debugger.error("下载 Manifest 文件失败, 跳过更新");
			break;
		case jsb.EventAssetsManager.UPDATE_FINISHED:
			Debugger.error("更新完成. " + event.getMessage());
			needReStart = true;
			break;
		case jsb.EventAssetsManager.UPDATE_FAILED:
			Debugger.error("更新失败. " + event.getMessage());
			this.isUpdating = false;
			this.isCanRetry = true;
			break;
		case jsb.EventAssetsManager.ERROR_UPDATING:
			Debugger.error("资源更新失败:" + event.getAssetId() + ', ' + event.getMessage());
			break;
		case jsb.EventAssetsManager.ERROR_DECOMPRESS:
			break;
		default:
			break;
	}

	if (failed) {
		this.assetsManager.setEventCallback(null);
		this.isUpdating = false;
		let searchPaths = jsb.fileUtils.getSearchPaths();
		var newPaths = this.assetsManager.getLocalManifest().getSearchPaths();
		Array.prototype.unshift.apply(searchPaths, newPaths);
		cc.sys.localStorage.setItem('HotUpdateSearchPaths', JSON.stringify(searchPaths));
		jsb.fileUtils.setSearchPaths(searchPaths);
		cc.audioEngine.stopAll();
		cc.game.restart();

	}
}

/**
 * 检测到新版本
 */
private onNewVersionFound() {
	// 执行更新
	this.execUpdate();
}

private onAlreadyUpToDate() { }

private onUpdateProgression(data) { }

private onUpdateFailed() {
	// retry
}

private onDownError() { }

}
`

输出了下 code 为 5, 对应 jsb.EventAssetsManager.UPDATE_PROGRESSION

你这代码自己写的还是在网上找的,明显有问题啊!
onCheckUpdateCallBack里面的case jsb.EventAssetsManager.UPDATE_PROGRESSION: 去掉

ok了记得回复一下哟

确实明显有问题, 一下子点醒。 非常感谢大佬

参考一下https://forum.cocos.org/t/topic/101219?u=ghlupup :wink: