【问题标题】:cocos2d-x android build failedcocos2d-x android 构建失败
【发布时间】:2019-02-03 07:53:05
【问题描述】:

很抱歉,我的英语说得不好,所以不得不依赖谷歌翻译。

我使用 cocos compile -p android --android-studio 命令构建了 cocos2d-x 项目。

我的开发环境:
操作系统 = Windows10
cocos2d-x = 3.17.1
ndk = r11c
sdk = 27.0.3 (android studio 版本 = 最新 (3.2.1) )

如何修复此构建错误?

> Task :gamer:generateJsonModelDebug FAILED
Task ':gamer:generateJsonModelDebug' is not up-to-date because:
  No history is available.
External native generate JSON debug: starting JSON generation
External native generate JSON debug: using platform version 16 for ABI 
ARMEABI_V7A and min SDK version 16
External native generate JSON debug: rebuilding JSON C:\Development\cocos2d- 
x-3.17.1\tools\cocos2d- 
console\bin\gamer\proj.android\app\.externalNativeBuild\cmake\debug\armeabi- 
v7a\android_gradle_build.json due to:
External native generate JSON debug: - expected json C:\Development\cocos2d- 
x-3.17.1\tools\cocos2d- 
console\bin\gamer\proj.android\app\.externalNativeBuild\cmake\debug\armeabi- 
v7a\android_gradle_build.json file is not present, will remove stale json 
folder
External native generate JSON debug: - missing previous command file 
C:\Development\cocos2d-x-3.17.1\tools\cocos2d- 
console\bin\gamer\proj.android\app\.externalNativeBuild\cmake\debug\armeabi- 
v7a\cmake_build_command.txt, will remove stale json folder
External native generate JSON debug: removing stale contents from 
'C:\Development\cocos2d-x-3.17.1\tools\cocos2d- 
console\bin\gamer\proj.android\app\.externalNativeBuild\cmake\debug\armeabi- 
v7a'
External native generate JSON debug: created folder 'C:\Development\cocos2d- 
x-3.17.1\tools\cocos2d- 
console\bin\gamer\proj.android\app\.externalNativeBuild\cmake\debug\armeabi- 
v7a'
External native generate JSON debug: executing cmake Executable : 
C:\Development\sdk\cmake\3.10.2.4988404\bin\cmake.exe
arguments :
-HC:\Development\cocos2d-x-3.17.1\tools\cocos2d-console\bin\gamer
-BC:\Development\cocos2d-x-3.17.1\tools\cocos2d- 

console\bin\gamer\proj.android\app\.externalNativeBuild\cmake\debug\armeabi- 
v7a
-DANDROID_ABI=armeabi-v7a
-DANDROID_PLATFORM=android-16
-DCMAKE_LIBRARY_OUTPUT_DIRECTORY=C:\Development\cocos2d-x- 
 3.17.1\tools\cocos2d- 



 > Task :gamer:generateJsonModelDebug FAILED
Task ':gamer:generateJsonModelDebug' is not up-to-date because:
  No history is available.
External native generate JSON debug: starting JSON generation
External native generate JSON debug: using platform version 16 for ABI 
ARMEABI_V7A and min SDK version 16
External native generate JSON debug: rebuilding JSON C:\Development\cocos2d- 
x-3.17.1\tools\cocos2d- 
console\bin\gamer\proj.android\app\.externalNativeBuild\cmake\debug\armeabi- 
v7a\android_gradle_build.json due to:
External native generate JSON debug: - expected json C:\Development\cocos2d- 
x-3.17.1\tools\cocos2d- 
console\bin\gamer\proj.android\app\.externalNativeBuild\cmake\debug\armeabi- 
v7a\android_gradle_build.json file is not present, will remove stale json 
folder
External native generate JSON debug: - missing previous command file 
C:\Development\cocos2d-x-3.17.1\tools\cocos2d- 

console\bin\gamer\proj.android\app.externalNativeBuild\cmake\debug\armeabi- v7a\cmake_build_command.txt,将删除陈旧的 json 文件夹 外部原生生成 JSON 调试:从 'C:\开发\cocos2d-x-3.17.1\tools\cocos2d- 控制台\bin\gamer\proj.android\app.externalNativeBuild\cmake\debug\armeabi- v7a' 外部原生生成 JSON 调试:创建文件夹 'C:\Development\cocos2d- x-3.17.1\tools\cocos2d- 控制台\bin\gamer\proj.android\app.externalNativeBuild\cmake\debug\armeabi- v7a' 外部原生生成 JSON 调试:执行 cmake Executable : C:\开发\sdk\cmake\3.10.2.4988404\bin\cmake.exe 论据: -HC:\开发\cocos2d-x-3.17.1\tools\cocos2d-console\bin\gamer -BC:\开发\cocos2d-x-3.17.1\tools\cocos2d- 控制台\bin\gamer\proj.android\app.externalNativeBuild\cmake\debug\armeabi- v7a -DANDROID_ABI=armeabi-v7a -DANDROID_PLATFORM=android-16 -DCMAKE_LIBRARY_OUTPUT_DIRECTORY=C:\开发\cocos2d-x- 3.17.1\tools\cocos2d-

console\bin\gamer\proj.android\app\build\intermediates\cmake\debug\obj\armeabi- v7a -DCMAKE_BUILD_TYPE=调试 -DANDROID_NDK=C:\开发\android-ndk-r11c -DCMAKE_CXX_FLAGS=-frtti -fexceptions -fsigned-char -DCMAKE_SYSTEM_NAME=安卓 -DCMAKE_ANDROID_ARCH_ABI=armeabi-v7a -DCMAKE_SYSTEM_VERSION=16 -DCMAKE_EXPORT_COMPILE_COMMANDS=ON -DCMAKE_ANDROID_NDK=C:\开发\android-ndk-r11c -DCMAKE_TOOLCHAIN_FILE=C:\开发\cocos2d-x-3.17.1\tools\cocos2d- 控制台\bin\gamer\proj.android\app.externalNativeBuild\cmake\debug\armeabi- v7a\pre-ndk-r15-wrapper-android.toolchain.cmake -G忍者 -DCMAKE_FIND_ROOT_PATH= -DANDROID_STL=c++_static -DANDROID_TOOLCHAIN=叮当声 -DANDROID_ARM_NEON=TRUE jvmArgs:

[== "CMake Server" ==[

{"supportedProtocolVersions":[{"isExperimental":true,"major":1,"minor":1}],"type":"hello"}

]== "CMake 服务器" ==]

[== "CMake 服务器" ==[

{ “类型”:“握手”, "cookie": "gradle-cmake-cookie", “协议版本”:{ “isExperimental”:是的, “主要”:1, “次要”:1 }, "sourceDirectory": "C:/Development/cocos2d-x-3.17.1/tools/cocos2d-console/bin/gamer", "buildDirectory": "C:/Development/cocos2d-x-3.17.1/tools/cocos2d-console/bin/gamer/proj.android/app/.externalNativeBuild/cmake/debug/armeabi-v7a", “发电机”:“忍者” }

]== "CMake 服务器" ==]

[== "CMake 服务器" ==[

{"cookie":"gradle-cmake-cookie","inReplyTo":"handshake","type":"reply"}

]== "CMake 服务器" ==]

[== "CMake 服务器" ==[

{ “类型”:“配置”, “缓存参数”:[ "", "-DANDROID_ABI\u003darmeabi-v7a", "-DANDROID_PLATFORM\u003dandroid-16", "-DCMAKE_LIBRARY_OUTPUT_DIRECTORY\u003dC:\Development\cocos2d-x-3.17.1\tools\cocos2d-console\bin\gamer\proj.android\app\build\intermediates\cmake\debug\obj\armeabi-v7a", "-DCMAKE_BUILD_TYPE\u003dDebug", "-DANDROID_NDK\u003dC:\开发\android-ndk-r11c", "-DCMAKE_CXX_FLAGS\u003d-frtti -fexceptions -fsigned-char", "-DCMAKE_SYSTEM_NAME\u003dAndroid", "-DCMAKE_ANDROID_ARCH_ABI\u003darmeabi-v7a", "-DCMAKE_SYSTEM_VERSION\u003d16", "-DCMAKE_EXPORT_COMPILE_COMMANDS\u003dON", "-DCMAKE_ANDROID_NDK\u003dC:\Development\android-ndk-r11c", "-DCMAKE_TOOLCHAIN_FILE\u003dC:\Development\cocos2d-x-3.17.1\tools\cocos2d-console\bin\gamer\proj.android\app\.externalNativeBuild\cmake\debug\armeabi-v7a\pre-ndk-r15-包装器-android.toolchain.cmake", “-G忍者”, "-DCMAKE_FIND_ROOT_PATH\u003d", "-DANDROID_STL\u003dc++_static", "-DANDROID_TOOLCHAIN\u003dclang", “-DANDROID_ARM_NEON\u003dTRUE” ] }

]== "CMake 服务器" ==]

[== "CMake 服务器" ==[

{"cookie":"","inReplyTo":"configure","message":"CMake 错误:/Development/sdk/cmake/3.10.2.4988404/android.toolchain.cmake:356(消息) :\n 无效的 Android NDK 修订版(应为 12):11.2.2725575。\n调用堆栈(最近调用优先):\n proj.android/app/.externalNativeBuild/cmake/debug/armeabi-v7a/pre-ndk- r15-wrapper-android.toolchain.cmake:2 (include)\n C:/Development/sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineSystem.cmake:94 (include)\n CMakeLists.txt :30(项目)\n\n","title":"Error","type":"message"}

]== "CMake 服务器" ==]

C:/Development/sdk/cmake/3.10.2.4988404/android.toolchain.cmake:356 处的 CMake 错误(消息): 无效的 Android NDK 修订版(应为 12):11.2.2725575。 调用堆栈(最近的调用优先): proj.android/app/.externalNativeBuild/cmake/debug/armeabi-v7a/pre-ndk-r15-wrapper-android.toolchain.cmake:2(包括) C:/Development/sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineSystem.cmake:94(包括) CMakeLists.txt:30(项目)

C:/Development/sdk/cmake/3.10.2.4988404/android.toolchain.cmake:356 处的 CMake 错误(消息): 无效的 Android NDK 修订版(应为 12):11.2.2725575。 调用堆栈(最近的调用优先): proj.android/app/.externalNativeBuild/cmake/debug/armeabi-v7a/pre-ndk-r15-wrapper-android.toolchain.cmake:2(包括) C:/Development/sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineSystem.cmake:94(包括) CMakeLists.txt:30(项目)

[== "CMake 服务器" ==[

{"cookie":"","inReplyTo":"configure","message":"CMake 错误:CMake 无法找到与 \"Ninja\" 对应的构建程序。CMAKE_MAKE_PROGRAM 未设置。您可能需要选择不同的构建工具。","title":"Error","type":"message"}

]== "CMake 服务器" ==]

CMake 错误:CMake 无法找到与“Ninja”对应的构建程序。 CMAKE_MAKE_PROGRAM 未设置。您可能需要选择不同的构建工具。 CMake 错误:CMake 无法找到与“Ninja”对应的构建程序。 CMAKE_MAKE_PROGRAM 未设置。您可能需要选择不同的构建工具。

[== "CMake 服务器" ==[

{"cookie":"","inReplyTo":"configure","message":"CMake 错误:CMAKE_C_COMPILER 未设置,EnableLanguage","title":"Error","type":"message" }

]== "CMake 服务器" ==]

CMake 错误:在 EnableLanguage 之后未设置 CMAKE_C_COMPILER CMake 错误:在 EnableLanguage 之后未设置 CMAKE_C_COMPILER

[== "CMake 服务器" ==[

{"cookie":"","inReplyTo":"configure","message":"CMake 错误:未设置 CMAKE_CXX_COMPILER,EnableLanguage","title":"Error","type":"message" }

]== "CMake 服务器" ==]

CMake 错误:在 EnableLanguage 之后未设置 CMAKE_CXX_COMPILER CMake 错误:在 EnableLanguage 之后未设置 CMAKE_CXX_COMPILER

[== "CMake 服务器" ==[

{"cookie":"","inReplyTo":"configure","progressCurrent":1000,"progressMaximum":1000,"progressMessage":"正在配置","progressMinimum":0,"type":"进展”}

]== "CMake 服务器" ==]

[== "CMake 服务器" ==[

{"cookie":"","inReplyTo":"configure","message":"配置不完整,出现错误!","type":"message"}

]== "CMake 服务器" ==]

配置不完整,出现错误! 配置不完整,出现错误!

[== "CMake 服务器" ==[

{"cookie":"","errorMessage":"配置失败。","inReplyTo":"configure","type":"error"}

]== "CMake 服务器" ==]

配置失败。 外部原生生成 JSON 调试:JSON 生成完成但有问题

:gamer:generateJsonModelDebug (Thread[Task worker for ':' Thread 7,5,main]) 完成。耗时 0.2 秒。

任务:libcocos2dx:pla​​tformAttrExtractor 任务 ':libcocos2dx:pla​​tformAttrExtractor' 不是最新的,因为: 没有可用的历史记录。

:libcocos2dx:pla​​tformAttrExtractor (Thread[Task worker for ':' Thread 5,5,main]) 完成。耗时 0.232 秒。

FAILURE: Build failed with an exception.
  • 出了什么问题: 任务 ':gamer:generateJsonModelDebug' 执行失败。

    com.android.ide.common.process.ProcessException:配置错误

  • 尝试: 使用 --stacktrace 选项运行以获取堆栈跟踪。使用 --debug 选项运行以获得更多日志输出。运行 --scan 以获得完整的见解。

  • 通过https://help.gradle.org获得更多帮助

在 21 秒内构建失败 21 个可操作的任务:21 个已执行 运行命令出错,返回码:1。

我怎么了?

【问题讨论】:

  • 你有没有按照错误最后的提示做任何事情?
  • 我不知道该怎么办。

标签: android c++ build cocos2d-x


【解决方案1】:

CMake 错误:CMake 无法找到对应的构建程序 “忍者”。

cocos2d-x 3.17.1 使用 CMake,跨平台构建系统(默认)。

Google 主要通过在 SDK 中自动下载来升级缺少的依赖项。
例如CMake 从3.6 升级到3.10(最新的cMake 需要ninja)。

所以你必须在你的系统中安装 Ninja

我希望这能解决您的问题。

【讨论】:

    【解决方案2】:

    macOS 10.15 + cpp3171 + ndk-r16b

    brew install ninja
    cocos compile -p android
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-04-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-12
      • 1970-01-01
      相关资源
      最近更新 更多