为什么3.6 android NDK(r9d, r10c)编译不过

我用cocos new命令创建了一个hello world并且跑成功了。
我的android API Level为20, 使用命令:
cocos compile -p android --ap-20 -m release --advanced
版本:3.6
系统:mac 10.10
ndk:r9d, r10c(两个都试过)

我这3.6+r10c没问题,mac上编的,cocos compile -p android 没用其他参数,因为用到了c++11特性,application.mk里面APP_STL := c++_static

我按照你的方法,application.mk里面修改APP_STL := c++_static, 然后cocos compile -p android 编译,结果还是报错:12:

Android NDK: WARNING: APP_PLATFORM android-19 is larger than android:minSdkVersion 9 in ./AndroidManifest.xml
make: Entering directory /Users/xiaoz/proj/cctest/proj.android' StaticLibrary : libcocos2d.a Compile++ thumb: cocostudio_static <= WidgetReader.cpp /Users/xiaoz/adt/ndkr10c/toolchains/arm-linux-androideabi-4.9/prebuilt/darwin-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.9/../../../../arm-linux-androideabi/bin/ar: line 1: ../../bin/arm-linux-androideabi-ar: No such file or directory make: *** Error 127 make: *** Waiting for unfinished jobs.... arm-linux-androideabi-g++: error trying to exec '/Users/xiaoz/adt/ndkr10c/toolchains/arm-linux-androideabi-4.9/prebuilt/darwin-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.9/../../../../arm-linux-androideabi/bin/as': execv: Exec format error make: *** Error 1 make: Leaving directory /Users/xiaoz/proj/cctest/proj.android’

好诡异啊,你new一个空工程出来直接编看看有没有问题

感谢你,是NDK的毛病,我从cocos store里重新下载了NDK, 这回能编译了,然后错误停留在unzip.cpp里的一个函数

/Users/xiaoz/proj/cctest/proj.android/…/cocos2d/cocos/./…/external/unzip/unzip.cpp: In function ‘int cocos2d::unzOpenCurrentFile3(unzFile, int*, int*, int, const char*)’:
/Users/xiaoz/proj/cctest/proj.android/…/cocos2d/cocos/./…/external/unzip/unzip.cpp:1664:40: error: invalid conversion from ‘const z_crc_t* {aka const unsigned int*}’ to ‘const long unsigned int*’ -fpermissive]
s->pcrc_32_tab = get_crc_table();
^

说是类型转换失败,请问你又碰到这问题吗?

没遇到过。。。

3.6 对应的应该是 ndk r10d吧