【问题标题】:Error after upgrading Android Studio NDK: CMAKE_C_COMPILER and CMAKE_CXX_COMPILER not set升级 Android Studio NDK 后出错:CMAKE_C_COMPILER 和 CMAKE_CXX_COMPILER 未设置
【发布时间】:2018-10-28 06:11:56
【问题描述】:

更新 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 以前的版本...

【问题讨论】:

  • 提供的解决方案对我不起作用。开始赏金。

标签: java android android-studio cmake android-ndk


【解决方案1】:

我设法修复它。我注意到的一件事是 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 都无关,它发生在其他地方,当构建失败时,它无法找到这些变量。 也许这也可以帮助某人......

【讨论】:

  • 其实这是由新的 gradle 插件处理的。在 build.gradle 中设置 buildscript { dependencies { classpath 'com.android.tools.build:gradle:3.1.2' } } 并在 gradle/wrapper/gradle-wrapper.properties 中设置 distributionUrl=https\://services.gradle.org/distributions/gradle-4.4-all.zip
  • 提供的解决方案对我不起作用。开始赏金。
  • @user1506104 您是否看到完全相同的错误消息?你用 NDK r17 吗?您是否删除了 .externalNativeBuild 以清除 cmake 缓存?
  • 是的。也清除了构建文件夹。
【解决方案2】:

在 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

只需同步 Gradle。

像魅力一样工作

【讨论】:

  • 完美!解决方案。
【解决方案3】:

就我而言,我有两个 NDK 安装文件夹。我需要更新我的 local.properties 以指向正确的目录。我更新了我的 NDK 和 build.gradle(通过上面的答案),重新同步然后一切正常。

【讨论】:

    【解决方案4】:

    嘿,我在安装 ndk-bundle 后遇到了类似的问题, 错误通过以下方式解决:

    build.gradle文件(模块级别)中添加以下代码sn-p:

    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 文件中。

    谢谢! 快乐编码:)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-08-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-10
      • 2015-11-12
      • 2021-12-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多