Android利用Cmake手动搭建JNI遇到的错
在已有的项目中添加c/c++遇到的错误:
Build command failed.
Error while executing process E:\sdk\cmake\3.6.4111459\bin\cmake.exe with arguments {-HE:\AndroidProject\Test2 -BE:\AndroidProject\Test2\app.externalNativeBuild\cmake\release\armeabi-v7a -DANDROID_ABI=armeabi-v7a -DANDROID_PLATFORM=android-16 -DCMAKE_LIBRARY_OUTPUT_DIRECTORY=E:\AndroidProject\Test2\app\build\intermediates\cmake\release\obj\armeabi-v7a -DCMAKE_BUILD_TYPE=Release -DANDROID_NDK=E:\sdk\ndk-bundle -DCMAKE_CXX_FLAGS=-std=c++11 -frtti -fexceptions -DCMAKE_TOOLCHAIN_FILE=E:\sdk\ndk-bundle\build\cmake\android.toolchain.cmake -DCMAKE_MAKE_PROGRAM=E:\sdk\cmake\3.6.4111459\bin\ninja.exe -GAndroid Gradle - Ninja}
– Configuring done
CMake Error at CMakeLists.txt:13 (add_library):
src/main/cpp/native-lib.cpp
Tried extensions .c .C .c++ .cc .cpp .cxx .m .M .mm .h .hh .h++ .hm .hpp
.hxx .in .txx
CMake Error: CMake can not determine linker language for target: native-lib
– Generating done
– Build files have been written to: E:/AndroidProject/Test2/app/.externalNativeBuild/cmake/release/armeabi-v7a
遇到问题的原因是:在CMakeLists.txt中
add_library( # Sets the name of the library.
#库名
native-lib
# Sets the library as a shared library.
#动态库
SHARED
# Provides a relative path to your source file(s).
#源文件或头文件的路径
src/main/cpp/native-lib.cpp )
配置路径时是库(.cpp文件)相对于CMakeList.txt的相对路径,找了好久我的相对路径是
app/src/main/cpp/native-lib.cpp
终于解决啦,开始入门了,哈哈哈哈!