Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cmake 如何将“android”库添加到android Studio 3.1.3上的ndk项目中?_Cmake_Android Ndk - Fatal编程技术网

Cmake 如何将“android”库添加到android Studio 3.1.3上的ndk项目中?

Cmake 如何将“android”库添加到android Studio 3.1.3上的ndk项目中?,cmake,android-ndk,Cmake,Android Ndk,我在编写与音频相关的应用程序时遇到了这个问题: Build command failed. Error while executing process C:\Android_SDK\cmake\3.6.4111459\bin\cmake.exe with arguments {--build D:\workspace\AndroidAudioNDK\app\.externalNativeBuild\cmake\debug\x86_64 --target native-lib} [1/1] Lin

我在编写与音频相关的应用程序时遇到了这个问题:

Build command failed. Error while executing process C:\Android_SDK\cmake\3.6.4111459\bin\cmake.exe with arguments {--build D:\workspace\AndroidAudioNDK\app\.externalNativeBuild\cmake\debug\x86_64 --target native-lib} [1/1] Linking CXX shared library ..\..\..\..\build\intermediates\cmake\debug\obj\x86_64\libnative-lib.so FAILED: cmd.exe /C "cd . && C:\android-ndk-r15c\toolchains\llvm\prebuilt\windows-x86_64\bin\clang++.exe --target=x86_64-none-linux-android --gcc-toolchain=C:/android-ndk-r15c/toolchains/x86_64-4.9/prebuilt/windows-x86_64 --sysroot=C:/android-ndk-r15c/sysroot -fPIC -isystem C:/android-ndk-r15c/sysroot/usr/include/x86_64-linux-android -D__ANDROID_API__=21 -g -DANDROID -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -Wa,--noexecstack -Wformat -Werror=format-security -std=c++11 -fexceptions -O0 -fno-limit-debug-info -Wl,--exclude-libs,libgcc.a --sysroot C:/android-ndk-r15c/platforms/android-21/arch-x86_64 -Wl,--build-id -Wl,--warn-shared-textrel -Wl,--fatal-warnings -Wl,--no-undefined -Wl,-z,noexecstack -Qunused-arguments -Wl,-z,relro -Wl,-z,now -shared -Wl,-soname,libnative-lib.so -o ..\..\..\..\build\intermediates\cmake\debug\obj\x86_64\libnative-lib.so CMakeFiles/native-lib.dir/src/main/cpp/native-lib.cpp.o -llog -lm "C:/android-ndk-r15c/sources/cxx-stl/gnu-libstdc++/4.9/libs/x86_64/libgnustl_static.a" && cd ." D:\workspace\AndroidAudioNDK\app\src\main\cpp/native-lib.cpp:35: error: undefined reference to 'AAssetManager_fromJava' D:\workspace\AndroidAudioNDK\app\src\main\cpp/native-lib.cpp:35: error: undefined reference to 'AAssetManager_open' D:\workspace\AndroidAudioNDK\app\src\main\cpp/native-lib.cpp:35: error: undefined reference to 'AAsset_openFileDescriptor' D:\workspace\AndroidAudioNDK\app\src\main\cpp/native-lib.cpp:44: error: undefined reference to 'AMediaExtractor_new' ... 我找到了这个问题的解决方案:,但是在最新的android studio 3.1.3中如何做到这一点呢?我尝试过该答案下的其他解决方案,但没有一个对我有效:构建错误仍然存在。

找到了解决方案

在CMakeList.txt文件中:

修改为

cmake_minimum_required(VERSION 3.4.1)

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

target_link_libraries( native-lib
                       android
                       log )
然后错误就消失了

参考:

找到了解决办法

在CMakeList.txt文件中:

修改为

cmake_minimum_required(VERSION 3.4.1)

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

target_link_libraries( native-lib
                       android
                       log )
然后错误就消失了

参考:


LOCAL_LDLIBS用于ndk构建,但您使用的是CMake。一个很好的起点是向您展示您需要使用目标链接库。

本地LDLIBS用于ndk构建,但您使用的是CMake。一个很好的起点是向您展示您需要使用target\u link\u库。

使用CMake的是Android Studio,而不是我。我只是被设置搞糊涂了。应该更新和链接。一个新手究竟怎么知道这些内置库的正确名称呢?使用CMake的是Android Studio,而不是我。我只是被设置搞糊涂了。应该更新和链接。一个新手究竟如何知道这些内置库的正确名称?