转载请标明出处:http://blog.csdn.net/xx326664162/article/details/55101192 原文出自:薛瑄的博客
你也可以查看我的其他同类文章,也会让你有一定的收货!
错误:
Error:error: linker command failed with exit code 1 (use -v to see invocation)
Gradle Console 编译信息:
E:/AndroidStudioProjects/FaceDetectToSvr131/app/src/main/jni/libFiFacial.a: error adding symbols: File in wrong format
clang++.exe: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [E:/AndroidStudioProjects/FaceDetectToSvr131/app/build/intermediates/ndkBuild/debug/obj/local/mips64/libface_identify.so] Error 1
去这个路径查看文件,app/build/intermediates/ndkBuild/debug/obj/local/mips64/libface_identify.so
确实没有生成这个so文件
分析:
根据我的分析,看到项目本来Application.mk中APP_ABI如下,我分析是没有指定生成mip64架构的so文件:
# The ARMv7 is significanly faster due to the use of the hardware FPU
APP_ABI := armeabi armeabi-v7a
APP_PLATFORM := android-8
APP_CPPFLAGS += -fexceptions
APP_STL := stlport_shared
APP_OPTIM := debug
jni中的c++文件,不支持生成mip64架构的so文件
解决:
在build.gradle中ndk模块中添加下面的代码:abiFilters 'armeabi', 'armeabi-v7a'
添加后的代码长这样:
ndk {
moduleName "facetemp"
abiFilters 'armeabi', 'armeabi-v7a'
}
关注我的公众号,轻松了解和学习更多技术