cocos2d-x-3.12 android-studio 问题

使用的是ndk-r10e
使用cocos 命令时出现以下异常,求大神赐教

E:\code\testCocos>cocos compile -p android -android-studio -m release
编译模式:release
使用 Eclipse 工程:E:\code\testCocos\proj.android
未指定 Android 目标平台版本,自动查找一个可用版本…
正在执行:’“F:\sdk\tools\android” update project -t android-15 -p E:\code\testCocos\proj.android’

Updated project.properties
Updated local.properties
Updated file E:\code\testCocos\proj.android\proguard-project.txt
未指定 Android 目标平台版本,自动查找一个可用版本…
正在执行:’“F:\sdk\tools\android” update lib-project -p E:\code\testCocos\cocos2d\cocos\platform\android\java -t android-19’

Updated project.properties
Updated local.properties
Updated file E:\code\testCocos\cocos2d\cocos\platform\android\java\proguard-project.txt
正在执行 ndk-build…
NDK 编译模式:release
正在执行:’“F:\sdk\android-ndk-r10e\ndk-build” -C E:\code\testCocos\proj.android -j4 NDK_MODULE_PATH=E:\code\testCocos\proj.android…/cocos2d;E:\code\testCocos\proj.android…/cocos2d/cocos;E:\code\testCocos\proj.android…/cocos2d/external NDK_TOOLCHAIN_VERSION=clang’

系统找不到指定的路径。
执行命令出错,返回值:1。

NDK_MODULE_PATH 你这个值的路径配置得是不是有问题 你检查一下你环境变量里面的设置 你要不就直接配置一个全路径得了

上述问题已解决是由于ndk-r10e里面默认只有12-17版本和sdk里面的不一致导致的
然而又出现了新的问题

cocos compile -p android --android-studio --ap android-23
编译模式:debug
使用 Android Studio 工程:E:\code\MyCppGame\proj.android-studio
正在执行:’“F:\sdk\tools\android” update project -t android-23 -p E:\code\MyCppGame\proj.android-studio\app’

Updated project.properties
Updated local.properties
Updated file E:\code\MyCppGame\proj.android-studio\app\proguard-project.txt
正在执行 ndk-build…
NDK 编译模式:debug
正在执行:’“F:\sdk\android-ndk-r12b\ndk-build” -C E:\code\MyCppGame\proj.android-studio\app -j4 NDK_MODULE_PATH=E:\code\MyCppGame\proj.android-studio…/cocos2d;E:\code\MyCppGame\proj.android-studio…/cocos2d/cocos;E:\code\MyCppGame\proj.android-studio…/cocos2d/external NDK_TOOLCHAIN_VERSION=clang NDK_DEBUG=1’

make: Entering directory E:/code/MyCppGame/proj.android-studio/app' E:\code\MyCppGame\proj.android-studio\../cocos2d/cocos/./Android.mk:250: *** commands commence before first target. Stop. make: Leaving directory E:/code/MyCppGame/proj.android-studio/app’

查看.mk文件 发现250行左右内容如下,google别人说是有空格引起的,然而我并没有发现有多余的空格

android.mk:250 错误已解决,是由于249行却少 “ \” 导致的,我很好奇这个是我用cocos命令自动生成的,并没有人为去改动它,为什么会少符号,然而事情并没有结束,新的问题又来了

E:\code\MyCppGame>cocos compile -p android --android-studio --ap android-23
编译模式:debug
使用 Android Studio 工程:E:\code\MyCppGame\proj.android-studio
正在执行:’“F:\sdk\tools\android” update project -t android-23 -p E:\code\MyCppGame\proj.android-studio\app’

Updated project.properties
Updated local.properties
Updated file E:\code\MyCppGame\proj.android-studio\app\proguard-project.txt
正在执行 ndk-build…
NDK 编译模式:debug
正在执行:’“F:\sdk\android-ndk-r12b\ndk-build” -C E:\code\MyCppGame\proj.android-studio\app -j4 NDK_MODULE_PATH=E:\code\MyCppGame\proj.android-studio…/cocos2d;E:\code\MyCppGame\proj.android-studio…/cocos2d/cocos;E:\code\MyCppGame\proj.android-studio…/cocos2d/external NDK_TOOLCHAIN_VERSION=clang NDK_DEBUG=1’

Android NDK: ERROR:E:\code\MyCppGame\proj.android-studio…/cocos2d/external/freetype2/prebuilt/android/Android.mk:cocos_freetype2_static: LOCAL_SRC_FILES points to a missing file
Android NDK: Check that E:/code/MyCppGame/proj.android-studio/…/cocos2d/external/freetype2/prebuilt/android/arm64-v8a/libfreetype.a exists or that its path is correct
make: Entering directory E:/code/MyCppGame/proj.android-studio/app' F:/sdk/android-ndk-r12b/build//../build/core/prebuilt-library.mk:45: *** Android NDK: Aborting . Stop. make: Leaving directory E:/code/MyCppGame/proj.android-studio/app’
执行命令出错,返回值:2。
说是需要一个arm64-v8a的库,我很奇怪这个库是需要在使用cocos new 项目的时候指定吗?为什么默认会没有?编译一个项目这么多官方错误,这让我很沮丧。

问题已解决,
编辑命令如下:
cocos compile -p --android-studio --target android-23 --ap android-23 --ndk-mode debug --ndk-toolchain arm-linux-androideabi-4.9 --platform android --app-abi armeabi --src E:\code\testCocos

详见https://github.com/ScatterMemory/blog

1赞

这个问题你是怎么解决的啊?