新建Cocos2d-X v3.17.2安卓项目运行时报java.lang.NullPointerException错误
问题根因
从异常栈可以定位到问题出在安卓构建插件的NDK参数读取阶段,空指针是Cocos2d-X v3.17.2 自带的安卓构建配置和NDK r19、30.0.0版本build-tools不兼容导致的:Cocos 3.17.2发布时NDK r19还未正式推送,默认生成的配置中没有显式指定NDK编译的平台版本,gradle读取NDK参数时拿到空值触发崩溃。
修复步骤
- 调整项目构建配置
打开项目proj.android/build.gradle文件,修改对应配置项:- 把build-tools版本从30.0.0降级到28.0.3,安卓gradle插件版本调整为3.2.1(和你用的gradle 4.6版本适配)
- 在defaultConfig节点下新增显式的NDK配置
参考修改后的配置片段:
buildscript { repositories { google() jcenter() } dependencies { // 调整gradle插件版本 classpath 'com.android.tools.build:gradle:3.2.1' } } android { compileSdkVersion 28 // 调整build-tools版本 buildToolsVersion "28.0.3" defaultConfig { // 显式指定需要编译的ABI ndk { abiFilters 'armeabi-v7a', 'arm64-v8a' } // 显式指定NDK编译平台版本 externalNativeBuild { ndkBuild { arguments "NDK_PLATFORM=android-28" } } } } - 校验Cocos全局NDK配置
执行cocos config --list查看NDK_ROOT参数,确认路径指向你安装的ndk;19.2.5345600目录,路径不能包含中文、空格或特殊字符。如果配置异常,执行cocos config --set NDK_ROOT=你的NDK实际本地路径修正。 - 清理缓存重新构建
删除项目下proj.android/.gradle、proj.android/build两个缓存目录,再执行cocos run -p android重新构建即可正常运行。
内容的提问来源于stack exchange,提问作者I'mMotivated
相关产品推荐
相关产品推荐

