cocos lua AssetsManagerEx 热更新 安卓真机闪退

//跪求求解释
–将下载目录的src和res作为优先级最高的搜索目录,这样才能保证下载的能覆盖原来的代码
function MainScene:update(p_fun)
local writablePath = cc.FileUtils:getInstance():getWritablePath()
local storagePath = writablePath … “new_version”

cc.FileUtils:getInstance():addSearchPath(storagePath.."/src/",true)
cc.FileUtils:getInstance():addSearchPath(storagePath.."/res/",true)

--------------------------------
local srcPath = storagePath.. '/src/'
local resPath = storagePath.. '/res/'

if not (cc.FileUtils:getInstance():isDirectoryExist(storagePath)) then         
    cc.FileUtils:getInstance():createDirectory(storagePath)
    cc.FileUtils:getInstance():createDirectory(resPath)
    cc.FileUtils:getInstance():createDirectory(srcPath)
end



--------------------------------
-- 创建AssetsManagerEx对象
local assetsManagerEx = cc.AssetsManagerEx:create("version/project.manifest", storagePath)
assetsManagerEx:retain()
-- 设置下载消息listener
local localManifest = assetsManagerEx:getLocalManifest()
local Version=localManifest:getVersion()

local searchPaths = cc.FileUtils:getInstance():getSearchPaths() 
table.insert(searchPaths, 1, storagePath)  
table.insert(searchPaths, 2, resPath)
table.insert(searchPaths, 3, srcPath)
cc.FileUtils:getInstance():setSearchPaths(searchPaths)

p_fun(Version)
if Version~='' then
   --return ;
end
local function handleAssetsManagerEx(event)
	if (cc.EventAssetsManagerEx.EventCode.ALREADY_UP_TO_DATE == event:getEventCode()) then
		
		local str="已经是最新版本了,进入游戏主界面"
		print(str)
		p_fun(str)
		
		--app:enterScene("GameScene")
	end
	
	if (cc.EventAssetsManagerEx.EventCode.NEW_VERSION_FOUND == event:getEventCode()) then

		local str="发现新版本,开始升级"
		print(str)
		p_fun(str)
		
	end

	if (cc.EventAssetsManagerEx.EventCode.UPDATE_PROGRESSION == event:getEventCode()) then
		local upnum=event:getPercent()--当前进度
		local ByFile=event:getPercentByFile()--总进度
		local num=Global:Int(ByFile)
		local str="更新进度="..num.."%"
		print(str)
		p_fun(str,num)
		
	end
	
	
	if (cc.EventAssetsManagerEx.EventCode.UPDATE_FINISHED == event:getEventCode()) then
		--app:run()
		--cc.game.restart()
		local str="更新完毕,请重新启动"
		print(str)
		p_fun(str)
		
	end
	
	if (cc.EventAssetsManagerEx.EventCode.ERROR_NO_LOCAL_MANIFEST == event:getEventCode()) then

		local str="发生错误:本地找不到manifest文件"
		print(str)
		p_fun(str)
		
	end
	
	if (cc.EventAssetsManagerEx.EventCode.ERROR_DOWNLOAD_MANIFEST == event:getEventCode()) then
	
		local str="发生错误:下载manifest文件失败"
		print(str)
		p_fun(str)
		
	end
	
	if (cc.EventAssetsManagerEx.EventCode.ERROR_PARSE_MANIFEST == event:getEventCode()) then
	
		local str="发生错误:解析manifest文件失败"
		print(str)
		p_fun(str)
		
	end
	
	if (cc.EventAssetsManagerEx.EventCode.ERROR_UPDATING == event:getEventCode()) then

		local str="发生错误:更新失败"
		print(str)
		p_fun(str)
		
	end
end

local dispatcher = cc.Director:getInstance():getEventDispatcher()
local eventListenerAssetsManagerEx = cc.EventListenerAssetsManagerEx:create(assetsManagerEx, handleAssetsManagerEx)
dispatcher:addEventListenerWithFixedPriority(eventListenerAssetsManagerEx, 1)

p_fun('检查版本并升级')
assetsManagerEx:update()

end