终于能有点闲暇时间来为社区做点贡献了
前因
之前看到很多关于安卓项目点击构建后, 资源文件没有同步到 jsb android的资源文件夹下, 导致每次都需要再点一次编译才行的问题, 当然我也遇到了, 不过这并不是什么太大问题.
但是当你需要用到android studio去调试项目时, 这问题就严重了, 每次点完编译后再进入android studio后, 会导致android studio重新构建项目( gradle有多坑我就不多说了), 每重复一次这个过程就不知道被偷走了多少个-1s.
但是这仍然不是最大的问题, 最令人难过的是当你接入第三方sdk的时候, 你用creator重新编译后再进入android studio, android studio 再重新构建完, 项目就无法再运行了, 而且完全没法恢复了(android方面我是菜鸟), 只能删除runtime-src, 重新再来一次, 然后再一次配置第三方sdk, 来来回回非常折腾人(虽然可以分开调试完再把项目合并起来, 只不过仍然是很麻烦).
后果
忍无可忍之后使用git去查看了下编译前后的android项目的差异, 最后发现并没什么不同, 会发生改变的也就只是资源文件, 大喜
解决方案
- 手动拷贝
project/build/jsb-*/下的res,src
并替换project/jsb-*/frameworks/runtime-src/proj.android-studio/app/assets/下同名资源文件夹 - 删除
project/jsb-*/frameworks/runtime-src/proj.android-studio/app/assets/下的res,src
使用软链接把creator构建后生成的资源文件链接到android的资源文件夹中
# 必须使用绝对路径
ln -s /Users/UserName/path/to/yourProject/build/jsb-*/res /Users/UserName/path/to/yourProject/build/jsb-*/frameworks/runtime-src/proj.android-studio/app/assets/res
ln -s /Users/UserName/path/to/yourProject/build/jsb-*/src /Users/UserName/path/to/yourProject/build/jsb-*/frameworks/runtime-src/proj.android-studio/app/assets/src
- 使用编辑器插件在构建完成后自动将资源文件同步到android项目对应的文件夹下
https://github.com/MakeHui/as-asset-sync