更新Android Studio NDK后,由于与CMAKE相关的错误(我的应用程序使用一个c ++文件),我无法构建我的应用程序。 以下是错误行:
Build command failed.
Error while executing process C:\Users\AnimallTag\AppData\Local\Android\sdk\cmake\3.6.4111459\bin\cmake.exe with arguments {-HC:\Projetos\Git\at65\app -BC:\Projetos\Git\at65\app\.externalNativeBuild\cmake\debug\mips -GAndroid Gradle - Ninja -DANDROID_ABI=mips -DANDROID_NDK=C:\Users\AnimallTag\AppData\Local\Android\sdk\ndk-bundle -DCMAKE_LIBRARY_OUTPUT_DIRECTORY=C:\Projetos\Git\at65\app\build\intermediates\cmake\debug\obj\mips -DCMAKE_BUILD_TYPE=Debug -DCMAKE_MAKE_PROGRAM=C:\Users\AnimallTag\AppData\Local\Android\sdk\cmake\3.6.4111459\bin\ninja.exe -DCMAKE_TOOLCHAIN_FILE=C:\Users\AnimallTag\AppData\Local\Android\sdk\ndk-bundle\build\cmake\android.toolchain.cmake -DANDROID_PLATFORM=android-14}
(include) CMakeLists.txt
CMake Error: CMAKE_C_COMPILER not set, after EnableLanguage
CMake Error: CMAKE_CXX_COMPILER not set, after EnableLanguage
-- Configuring incomplete, errors occurred!
有什么建议可以帮我解决这个问题吗?也许我可以降级NDK或我可以安装的Android Studio以前的版本......
答案 0 :(得分:9)
我设法解决了这个问题。我注意到的一件事是android NDK的更改日志,它说没有更多支持armeabi,MIPS和MIPS64 ABI,所以我在build.gradle文件中过滤了ABI:
android {
defaultConfig {
externalNativeBuild {
cmake {
abiFilters 'arm64-v8a', 'armeabi-v7a', 'x86', 'x86_64'
}
}
}
}
之后我同步gradle和Android Studio提示我更新Gradle,我做了。 该应用程序现在可以部署,但我不知道是什么修复它。 显然,错误与CMAKE_C_COMPILER无关,也不是CMAKE_CXX_COMPILER,它发生在其他地方,当构建失败时,它无法找到这些变量。 也许这也可以帮助别人......
答案 1 :(得分:4)
NDK最近更新之后,CMAKE中断了
什么都没做,我通过从以下位置下载NDK降级了NDK https://developer.android.com/ndk/downloads/older_releases
并将 local.properties 中的NDK DIR PATH更改为
ndk.dir=/Users/kathan/Library/Android/sdk/android-ndk-r17c
还有Sync Gradle。
像魅力一样工作
答案 2 :(得分:1)
就我而言,我有两个用于NDK的安装文件夹。我需要更新我的 local.properties 以指向正确的目录。我更新了我的NDK和 build.gradle (通过上述回答),重新同步后一切正常。
答案 3 :(得分:0)
嘿,在安装 ndk-bundle 后,我遇到了类似的问题, 错误已通过以下方式解决:
在 build.gradle 文件(模块级别)中添加以下代码段:
android {
defaultConfig {
ndk {
abiFilters "armeabi-v7a", "x86"
}
externalNativeBuild {
cmake {
abiFilters 'arm64-v8a', 'armeabi-v7a', 'x86', 'x86_64'
}
}
}
}
注意:如果您在build.gradle文件中已经有这种代码,请确保没有多余的 abiFilters ,而不是我在这里提到的那些代码。>
还要确保您已添加:
distributionUrl = https://services.gradle.org/distributions/gradle-4.6-all.zip
在 gradle / wrapper / gradle-wrapper.properties 文件中。
谢谢! 快乐编码:)