Android Studio CMake错误:构建命令失败

时间:2017-07-20 15:25:05

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

当我从Code Samples(Hello JIN)在Android Studio中打开一个新项目时,我遇到了错误。项目打开时如下:

    cmake_minimum_required(VERSION 3.4.1)

add_library(hello-jni SHARED
            hello-jni.c)

# Include libraries needed for hello-jni lib
target_link_libraries(hello-jni
                      android
                      log)

此错误会在IDE中删除多个时间

我正在使用Arch-Linux 64x

Cmake.txt:

{{1}}

9 个答案:

答案 0 :(得分:19)

构建 - >刷新链接的C ++项目为我解决了这个错误。

答案 1 :(得分:7)

@rpurohit几乎是对的,Clang工作不正常。但是要更改编译器,你需要更改build.gradle,在我的build.gradle中它是第12行:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul>
  <li>Row 1</li>
  <li class="highlight">Row 2</li>
  <li>Row 3</li>
  <li>Row 4</li>
</ul>

答案 2 :(得分:4)

我建议暂时使用GCC而不是clang因为clang仍然不包含所有功能。您可以通过执行以下操作来更改编译器:

set(CMAKE_C_COMPILER /path-to-ndk/toolchains/aarch64-linux-android-4.9/prebuilt/darwin-x86_64/bin/aarch64-linux-android-gcc)

但是,darwin-x86_64目录仅在您使用Mac时才存在。如果您在另一个平台上,只需使用预建文件夹下的目录。

答案 3 :(得分:0)

如果以前的答案对您不起作用,就像发生在我身上一样,请尝试修复cmake和ndk的bin文件夹中的权限。在我的情况下:C:\ android-sdk \ cmake \ 3.6.4111459 \ bin和c:\ android-sdk \ ndk-bundle

在我的情况下,Users组没有权限,因此Android Studio无法运行cmake。确保它具有读取和执行权限。

答案 4 :(得分:0)

升级gradle或其他依赖项时,有时会发生此错误。 一个简单的解决方案是Build&gt; &#34;刷新链接的C ++项目&#34;之后重建你的项目。一切顺利

答案 5 :(得分:0)

我尝试了上面提供的解决方案,但是没有运气。然后,我更改了在CMakeLists.txt文件中设置的OpenCV_DIR的路径,并且该路径有效。我的项目没有指向正确的路径,这导致了错误。确保在CMakeLists.txt文件中提供了正确的路径。

例如:

set(OpenCV_DIR "...../OpenCV_Android/install/sdk/native/jni/abi-arm64-v8a")

答案 6 :(得分:0)

我遇到此问题是因为我设置了native-lib.cpp的错误路径。更改后

add_library(native-lib SHARED native-lib.cpp)

add_library(native-lib SHARED src/main/jni/native-lib.cpp)

再次工作。

顺便说一句,这是我项目结构的一部分。

CMakeLists.txt
src
 |__main
      |___jni
           |___native-lib.cpp

答案 7 :(得分:0)

我在网上找到了该解决方案,并且可以正常工作,但是没有解释它如何工作: 从build.gradle文件中删除以下代码块:

externalNativeBuild {
    cmake {
        path "src/main/cpp/CMakeLists.txt"
    }
}

答案 8 :(得分:-1)

我发现这种方式可以工作:

build success here

不需要在下面删除:

    externalNativeBuild {
        cmake {
            path "CMakeLists.txt"
        }
    }

这很有用。您的项目只需减少忍者文件即可。

您可以通过这种方式获得成功!

结果如下:

Make was unable to find a build program corresponding to "Ninja". CMAKE_MAKE_PROGRAM is not set. You probably need to select a different build tool.

您应该安装忍者

  1. 在这里ninja download file
  2. 下载忍者
  3. 获取忍者文件
  4. 将忍者文件复制到/ usrlocal / bin
  5. 再次构建。项目成功运行!