最近一段时间和小伙伴做了一个demo,在打包安卓的时候遇到了一些神坑。不得不说打包的调试是真的折磨人。希望有看到的朋友不要再踩坑。
安卓StreamingAssets文件夹
由于UGUI界面全部是用lua来写的,但是没有服务器,所以决定将lua文件放在StreamingAssets文件夹中来读取。这时问题出现了,无法读取。后来看了雨松大神的文章才知道安卓端的StreamingAssets文件夹中的文件虽然可读,但是不可以用IO流读取,可以用AB包来读取,所以就决定将lua文件以及一些动态
数据给打成AB包读取。
这时候又将lua中需要读取StreamingAssets文件的脚本全部换成ABLoad。
AB包
决定将lua文件打成ab包之后又发现了一个问题。打AB包的时候lua脚本无法被打成AB包,找了半天问题发现.lua结尾的文件无法被打成AB包。。。又将lua脚本全部换成.txt结尾。。。这里注意一定要将打包目标平台换成Android
总算是打成AB包了。
File.Exists
更新了lua脚本读取方式,打好了AB包满心欢喜在编译器运行,成功!打包到安卓又报错!由于在编辑器能运行,在安卓不能运行,这里用了一个插件找到了报错脚本,是AB包加载失败,这里的报错找了好久好久,从新打包了十多次。我的AB包加载全部用的ABManager,在里面有一个判空File.Exists判断文件是否存在,文件路径是一定没错的,但是在安卓是一直判断为false的,查了很多文章都没有找到这个问题。电脑端是不需要加后缀就能判断成功的,可能是在安卓需要添加后缀判断的原因。