我正在尝试在 Android Studio 中构建同事的项目,该项目需要 CMake SDK 来构建项目中包含的外部 c/cpp 文件。我遇到的问题是,尽管通过 SDK 管理器安装了 LLDB、NDK 和 CMake SDK 工具,但引用 cmake 路径的模块的 gradle 无法同步。我已经安装了这个项目并正在工作的同事还没有遇到这个问题,所以我怀疑它一定是我的环境设置中的问题。
到目前为止,我已经尝试卸载并重新安装 CMake SDK,刷新链接的 C++ 项目,并从 gradle 文件中删除对 cmake 路径的引用,并通过右键单击 moduel -> Link C++ Project with Gradle 添加引用,但这些都不起作用。
当我在 gradle 中注释掉对 CMakeLists.txt 的引用时,它会同步,表明问题出在对 CMake 文件的引用上。我还尝试在 CMakeLists.txt 文件中注释掉库引用,以查看是否由于文件中的引用而发生错误,但即使我注释掉所有内容,gradle 也无法同步。
这就是我的 gradle 文件的样子。
externalNativeBuild {
cmake {
path 'src/main/cpp/CMakeLists.txt'
}
}
当我在 build.gradle 中按同步(重试)时,错误消息仅显示
SIMPLE: Error configuring
当我忽略 gradle 同步失败的事实并只是尝试构建时,错误消息显示如下。
Cause: executing external native build for cmake <my_project_path>\src\main\cpp\CMakeLists.txt
编辑:添加了指向我的 Android Studio NDK 路径(C:\Users\username\AppData\Local\Android\Sdk\ndk-bundle for Windows)的图像捕获的链接。 NDK path Capture
最佳答案
简而言之 - 也许问题出在与项目一起导入的 build.gradle 文件中。
尝试编辑“build.gradle”第 9 行:类路径“com.android.tools.build:gradle:3.1.1” 替换 gradle 版本号(在我的例子中,我将 '3.1.1' 替换为 '3.5.0')。
更详细地说 - 我在克隆时遇到了同样的问题: https://github.com/farzaa/DracoPortedToAndroid
我确实尝试了上述方法(设置 ndk 路径),但这不是问题,因为 ndk lib 的路径是正确的。因此,最可能的错误原因是与克隆项目一起导入的一些项目设置。
尝试将导入项目的“Gradle 脚本”(在项目资源管理器中)与在 Android Studio 环境中构建的新项目进行比较。新项目将具有正确的本地设置。
就我而言,我替换了:
classpath 'com.android.tools.build:gradle:3.1.1'
与:
classpath 'com.android.tools.build:gradle:3.5.0'
关于android - Gradle 同步失败,cmake "cause: executing external native build for cmake",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57228325/