【发布时间】:2017-05-23 00:10:12
【问题描述】:
错误:为 cmake C:\Users\PC1\Desktop\ndkdata\GDNdkText\app\CMakeLists.txt 执行外部原生构建
构建时出错:
我已经安装了 here 提到的 NDK、CMake、LLDP。是否需要安装任何其他工具或需要设置任何环境变量?
【问题讨论】:
标签: java android android-studio android-ndk
错误:为 cmake C:\Users\PC1\Desktop\ndkdata\GDNdkText\app\CMakeLists.txt 执行外部原生构建
我已经安装了 here 提到的 NDK、CMake、LLDP。是否需要安装任何其他工具或需要设置任何环境变量?
【问题讨论】:
标签: java android android-studio android-ndk
如果你在 Linux 下运行,你需要安装 Ninja。 sudo apt install ninja-build
今天测试。
【讨论】:
你必须使用自制软件安装忍者
brew install ninja
【讨论】:
sudo chown -R user_name /usr/local/lib/pkgconfig,其中user_name 是当前用户的名称。之后,brew install ninja 命令就成功了。
您还需要安装 ncurses5(对于 arch-linux,它的 AUR 包 - ncurses5-compat-libs),因为 Android Studio 2.2 上的 NDK 支持不使用可能安装在您的系统上的 ncurses6。
【讨论】:
我通过检查日志文件解决了我的问题。
./app/.cxx/cmake/commonDebug/x86/android_gradle_generate_cmake_ninja_json_x86.stderr.txt
【讨论】:
我认为问题在于 CMakelist.txt 文件的位置错误。
尝试将 CMakelist.txt 文件从您的应用根目录移动到 app/src/main/cpp/CMakelist.txt 目录,然后从 gradle 文件中更新位置,如下所示:
externalNativeBuild {
cmake {
path "src/main/cpp/CMakeLists.txt"
}
}
【讨论】:
如果你想让你的项目不包含任何 C++ 文件 确保您没有选中包含 C++ 的框 在新项目的开始
【讨论】:
我在导入同事工作区时遇到了这个问题。我们遇到了外部原生构建错误。而且 IDE 似乎忽略了很多 CMake 命令。
事实证明,问题在于我没有按照上面 ariel 帖子中的建议安装 Ninja。我通过运行gradlew build --stacktrace 发现了这一点,并发现了一条抱怨没有安装 Ninja 的行。注意:我们是在linux环境下开发的。
Ninja 是一个注重速度的构建系统,用于在有大量输入文件的系统中替换make。 Ninja Wiki
一旦我安装了 ninja,一切就完美了!
【讨论】: