写在前面
最近被公司调去做一个cocos-creator的项目,一开始我是拒绝的,但是为了生活..,用下来体验不是很好,可能是很多地方不太习惯吧,写js的感受跟写lua差不多,之前写过微信小程序,并没有那么多的排斥感。当时负责这个项目的人不在,全程就靠我自摸索,真难受。
就这样开始一开始我以为cocos是可以直接打包成apk,事实上是有这个功能的,我也直接打包成功,但是意外的是这个项目的安卓的插件那些是直接写在安卓工程里的。所以必须要用AS打包,要来了之前的AS工程,替换生成的工程,然后打包,运行【闪退】。这就开始了一些列的问题。
排雷过程
问题:
我觉得重新生成我的AS工程,然后添加安卓插件即可,这个时候我生成工程的时候,在cocos里报了CreateProcess error = 2,系统找不到指定的文件这个错。
错误截图解决方案:
如果ndk版本在r17版, 很有可能出现这个问题. 我的解决方案是:
-
先清除 Android/Sdk/ndk-bundle/ 下的内容
-
从 https://developer.android.google.cn/ndk/downloads/older_releases 下载16b版本的ndk到本地, 并解压说, 将解压缩后的所有文件拷贝到 Android/Sdk/ndk-bundle/ 目录下(或者不想删除r17,可以把16b版本toolchains\mips64el-linux-android-4.9\prebuilt\windows-x86_64的所有文件copy到r17中toolchains\mips64el-linux-android-4.9\prebuilt\windows-x86_64目录下也可以解决)
-
重新build工程
16b下载链接:https://developer.android.google.cn/ndk/downloads/older_releases#ndk-16b-downloads
问题:
生成了AS工程,打开编译就看到这个错了,说的是SDK、NDK路径不存。
解决方案:
从上面的图片提示“Please fix the ‘sdk.dir’ property in the local.properties file.”,说的很明白,很简单,就是打开你下载的项目根目录,找到“local.properties”文件,并打开,修改“sdk.dir”条目,改为你系统下的SDK目录,如下图所示。
问题:
遇到ndk路径不正确,这里找不到对应的ndk。
这个也是ndk的路径和版本不对
修改好ndk.dir后,就可以打包了,但是会闪退。这里是因为ndk的版本太高,之前他们开发原生jar的时候用的ndk10版本。
闪退报错重新下载一个ndk版本既可。
最后他们教我也可以在cocos里面直接构建然后编译即可。
其实造成这些问题的原因就是在cocos导出来的AS工程上做插件开发,这样不适用于多人开发,我看cocos也有像unity那样的plugins文件这种模式。
【参考文章】
https://blog.csdn.net/meixi_android/article/details/80798832
https://blog.csdn.net/fuqiang3270/article/details/68945114
https://blog.csdn.net/zhangyulin54321/article/details/78079567
https://blog.csdn.net/kevinyankai/article/details/78910163
网友评论