Project Compile失败,为什么?

,* Creator 版本: 1.6.2

  • 目标平台:(Web / iOS / Android / 模拟器):N/A

  • 详细报错信息,包含调用堆栈:
    Error: Compile failed. The log file path [ C:\Users\Tester.CocosCreator\logs\native.log ]
    at ChildProcess.handleChildProcess (C:\CocosCreator\resources\app.asar\editor\core\native-utils.js:1:19147)
    at ChildProcess.e.on (C:\CocosCreator\resources\app.asar\editor\core\native-utils.js:1:7613)
    at emitTwo (events.js:106:13)
    at ChildProcess.emit (events.js:191:7)
    at maybeClose (internal/child_process.js:877:16)
    at Process.ChildProcess._handle.onexit (internal/child_process.js:226:5)
    native.log里的错误信息我放最后

  • 重现方式:新建HelloWorld项目=>Build(选择Android平台,APP ABI后3项)=>Compile

  • 编辑器操作系统(可选):
    Win10 64bit(OS build 16299) , VS2017 Pro (15.4.4) ,Win10 SDK(16299,15063,14393,10240) ,Android Studio 3.0

  • 编辑器之前是否有其它报错(可选):N/A

native.log的内容:
Building mode: debug
Using Android Studio project : C:\Users\Tester\Documents\HelloWorld\build\jsb-default\frameworks\runtime-src\proj.android-studio
Building native…
NDK build mode: debug
running: ‘“D:\AndroidSDK\ndk-bundle\ndk-build” -C C:\Users\Tester\Documents\HelloWorld\build\jsb-default\frameworks\runtime-src\proj.android-studio\app -j4 APP_ABI=“armeabi-v7a arm64-v8a x86” NDK_MODULE_PATH=C:\Users\Tester\Documents\HelloWorld\build\jsb-default\frameworks\cocos2d-x;C:\Users\Tester\Documents\HelloWorld\build\jsb-default\frameworks\cocos2d-x\cocos;C:\Users\Tester\Documents\HelloWorld\build\jsb-default\frameworks\cocos2d-x\external NDK_TOOLCHAIN_VERSION=4.9 NDK_DEBUG=1’

Android NDK: Found platform level in ./project.properties. Setting APP_PLATFORM to android-22.
Android NDK: WARNING: APP_PLATFORM android-22 is higher than android:minSdkVersion 1 in ./AndroidManifest.xml. NDK binaries will not be comptible with devices older than android-22. See https://android.googlesource.com/platform/ndk/+/master/docs/user/common_problems.md for more information.
make: Entering directory C:/Users/Tester/Documents/HelloWorld/build/jsb-default/frameworks/runtime-src/proj.android-studio/app' [armeabi-v7a] Gdbserver : [arm-linux-androideabi-4.9] libs/armeabi-v7a/gdbserver [armeabi-v7a] Gdbsetup : libs/armeabi-v7a/gdb.setup [arm64-v8a] Gdbserver : [aarch64-linux-android-4.9] libs/arm64-v8a/gdbserver [arm64-v8a] Gdbsetup : libs/arm64-v8a/gdb.setup [x86] Gdbserver : [x86-4.9] libs/x86/gdbserver [x86] Gdbsetup : libs/x86/gdb.setup [armeabi-v7a] Compile++ thumb: audioengine_static <= mp3reader.cpp [armeabi-v7a] Compile++ arm : cocos_ui_static <= UILayoutManager.cpp [armeabi-v7a] Compile++ arm : cocos_ui_static <= CocosGUI.cpp [armeabi-v7a] Compile++ arm : cocos_ui_static <= UIHelper.cpp C:/Users/Tester/Documents/HelloWorld/build/jsb-default/frameworks/cocos2d-x/cocos/audio/android/mp3reader.cpp: In function 'bool resync(mp3_callbacks*, void*, uint32_t, off64_t*, uint32_t*)': C:/Users/Tester/Documents/HelloWorld/build/jsb-default/frameworks/cocos2d-x/cocos/audio/android/mp3reader.cpp:229:43: error: 'memcmp' was not declared in this scope if (memcmp("ID3", id3header, 3)) { ^ C:/Users/Tester/Documents/HelloWorld/build/jsb-default/frameworks/cocos2d-x/cocos/audio/android/mp3reader.cpp:274:48: error: 'memcpy' was not declared in this scope memcpy(buf, tmp, remainingBytes); ^ make: *** [obj/local/armeabi-v7a/objs-debug/audioengine_static/mp3reader.o] Error 1 make: *** Waiting for unfinished jobs.... make: Leaving directory C:/Users/Tester/Documents/HelloWorld/build/jsb-default/frameworks/runtime-src/proj.android-studio/app’
Error running command, return code: 2.

昨天完全重做系统:

  1. 清理所有盘,安装Win10 Pro 64 bit EN,版本16299
  2. 安装VS2017,选择C++有关的模块
  3. 安装AndroidStudio(3.0.1),下载API10,22,27 SDK以及Tool,NDK(16.0.4442984)
  4. 安装JDK 1.8
  5. 安装ANT
  6. 下载cocos creator安装
  7. 其余步骤同之前
    最后还是compile失败
1赞

刚才尝试到C:\Users\Tester\Documents\NewProject\build\jsb-default\frameworks\runtime-src\proj.android-studio ,用Android Studio打开并用Gradle编译,现象同Cocos Creator. 最后都是使用ndk-build完成编译,所以同一个错误

有趣的是,用VS2017直接打开C:\Users\Tester\Documents\NewProject\build\jsb-default\frameworks\runtime-src\proj.win32下Solution,编译hello_world项目,一切正常。

然后回到Cocos Creator, 选择Platform是Windows,Build=>Compile,Compile居然失败了。log里信息是

Building mode: debug
Building…
Required VS version : [2013, 2015, 2017]
Can’t find correct Visual Studio’s path in the registry.
居然找不到????????

你是不是勾选了 安卓屎丢丢

APP_PLATFORM设置太高了
怎么死的都不知道了。
请把这个值设置为14.

这个PR修复APP_PLATFORM设置太高的问题。

https://github.com/cocos-creator/cocos2d-x-lite/pull/1012

但是还是推荐设置为14兼容性会最好。

用1.7-release的Mp3reader.cpp覆盖了1.6.2的就编译成功了!