当我从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}}
答案 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)
我发现这种方式可以工作:
不需要在下面删除:
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.
您应该安装忍者