NDK编译时报错
bug背景
开发环境是 Mac Os + AndroidStudio + Cocos Creator
因为公司业务需要,我要把cocos开发的游戏编译成安卓应用,然后在安卓层接入一些渠道SDK(原因不详,只是作为一个背景介绍)。有一天手痒痒,发现电脑存储空间不够了,我也不知道为什么cocos项目编译成安卓这么费空间,没办法,我就看着最近访问日期删除lib so文件啥的,省出来20多个G,舒服了。几十秒后,我打开AndroidStudio准备改一点东西,发现编译不能成功,而且出了一个从没见过的错误,需要重新安装ndk,这个在AndroidStudio里就可以很简单办到。但是配置完了之后发现死活都不能正常编译,终端报错如下!
java.lang.NullPointerException (no error message)
搜索引擎告诉我的方法是删除项目中的 [.gradle]文件夹,然后clear项目,然后重新打开。结果无效。
也有说修改电脑环境变量的,无效。
Stack Overflow上也看了,就是删除文件夹。心态快崩了的时候,冷静下来想想,cocos的编译是不是和AndroidStudio编译一样都是用NDK的呢,因为在之前的经验中,有注意到是ndk出了问题,只是不知道NDK到底问题在哪。我用cocos编译了试试
在红框位置点击,可以看到具体的报错日志如下:(成功的部分省略)
Creating configuration testApi
Creating configuration testImplementation
Creating configuration testRuntimeOnly
Creating configuration testCompileOnly
Creating configuration testWearApp
Creating configuration testAnnotationProcessor
Creating configuration testApi
Creating configuration testImplementation
Creating configuration testRuntimeOnly
Creating configuration testCompileOnly
Creating configuration testWearApp
Creating configuration testAnnotationProcessor
NDK is missing a “platforms” directory.
If you are using NDK, verify the ndk.dir is set to a valid NDK directory. It is currently set to /Users/wangfan/Documents/android_sdks/ndk/23.0.7123448.
If you are not using NDK, unset the NDK variable from ANDROID_NDK_HOME or local.properties to remove this warning.
Creating configuration debugCompile
Creating configuration debugPublish
Creating configuration debugProvided
If you are using NDK, verify the ndk.dir is set to a valid NDK directory. It is currently set to /Users/wangfan/Documents/android_sdks/ndk/23.0.7123448.
If you are not using NDK, unset the NDK variable from ANDROID_NDK_HOME or local.properties to remove this warning.
Creating configuration debugCompile
Creating configuration debugPublish
Creating configuration debugProvided
我们注意这一行提示:
NDK is missing a “platforms” directory.
提示我配置的NDK缺少platforms这个目录,于是我找了个低版本 [20.0.5594570],下载下来,编译成功!
本人自觉很菜,这次解决bug也是有偶然成分,但是确实很困扰。也提醒我以后解决问题还是要更多的仔细冷静的分析日志,再去搜索引擎。
有问题欢迎交流:2770994498
本人原是php,后来接触安卓SDK接入,以及cocos,都是菜鸟级别,轻踩