我正在尝试构建JNI项目并使用openssl进行加密和解密 . 我得到了以下错误 . 这是什么意思?我们什么时候得到这样的错误?以及如何解决它?
FAILURE:构建因异常而失败 .
- 出了什么问题:任务':app:externalNativeBuildDebug'的执行失败 .
构建命令失败 . 执行进程C:\ android \ sdk \ cmake \ 3.6.4111459 \ bin \ cmake.exe时出错{--build C:\ SampleJni \ app.externalNativeBuild \ cmake \ debug \ armeabi-v7a --target native-lib构建CXX对象CMakeFiles / native-lib.dir / src / main / cpp / native-lib.cpp.o [2/2]链接CXX共享库........ \ build \ intermediates \ cmake \ debug \ obj \ armeabi-v7a \ libnative-lib.so FAILED:cmd.exe / C“cd . && C:\ android \ sdk \ ndk-bundle \ toolchains \ llvm \ prebuilt \ windows-x86_64 \ bin \ clang .exe --target = armv7-none-linux-androideabi --gcc-toolchain = C:/android/sdk/ndk-bundle/toolchains/arm-linux-androideabi-4.9/prebuilt/windows-x86_64 --sysroot = C:/ android / sdk / ndk-bundle / sysroot -fPIC -isystem C:/ android / sdk / ndk-bundle / sysroot / usr / include / arm-linux-androideabi -D__ANDROID_API __ = 14 -g -DANDROID -ffunction- sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -march = armv7-a -mfloat-abi = softfp -mfpu = vfpv3-d16 -fno-integrated-as -mthumb -Wa, - noexecstack - Wformat -Werror = format-security -O0 -fno-limit-debug-info -Wl, - exclude-libs,libgcc.a --sysroot C:/ android / sdk / ndk-bundle / platforms / android-14 / arch-arm -Wl, - build- id -Wl, - warn-shared-textrel -Wl, - fatal-warnings -Wl, - fix-cortex-a8 -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 \ armeabi-v7a \ libnative-lib.so CMakeFiles / native-lib.dir / src / main / cpp / native-lib.cpp.o ../../../../openssl-armeabi-v7a/lib/libcrypto.a . ./../../../openssl-armeabi-v7a/lib/libssl.a -llog -lm“C:/ android / sdk / ndk-bundle / sources / cxx-stl / gnu-libstdc /4.9/ libs / armeabi-v7a / libgnustl_static.a“&& cd . ” ../../../../openssl-armeabi-v7a/lib/libcrypto.a(ui_openssl.o):ui_openssl.c:function read_string_inner:error:undefined reference to'signal'../../ ../../openssl-armeabi-v7a/lib/libcrypto.a(ui_openssl.o):ui_openssl.c:function read_string_inner:error:undefined reference to'tcsetattr'../../../../ openssl-armeabi-v7a / lib / libcrypto.a(ui_openssl.o):ui_openssl.c:function read_string_inner:error:undefined reference to'tcsetattr'../../../../openssl-armeabi-v7a/ lib / libcrypto.a(ui_openssl.o):ui_openssl.c:function open_console:error:undefined reference to'tcgetattr'../../../../ openssl-armeabi-v7a / lib / libcrypto.a( c_zlib.o):c_zlib.c:function zlib_stateful_expand_block:error:undefined reference to'inmplate'../../../../openssl-armeabi-v7a/lib/libcrypto.a(c_zlib.o):c_zlib .c:function zlib_stateful_compress_block:error:undefined reference to'deflate'../../../../openssl-armeabi-v7a/lib/libcrypto.a(c_zlib.o):c_zlib.c:function bio_zlib_free:错误:未定义引用'inflateEnd'../ . ./../../openssl-armeabi-v7a/lib/libcrypto.a(c_zlib.o):c_zlib.c:function bio_zlib_free:错误:未定义引用'deflateEnd'../../../ . ./openssl-armeabi-v7a/lib/libcrypto.a(c_zlib.o):c_zlib.c:function zlib_stateful_finish:错误:未定义引用'inflateEnd'../../../../openssl-armeabi- v7a / lib / libcrypto.a(c_zlib.o):c_zlib.c:function zlib_stateful_finish:error:undefined reference to'deflateEnd'../../../../openssl-armeabi-v7a/lib/libcrypto . a(c_zlib.o):c_zlib.c:function zlib_stateful_init:error:undefined reference to'inflateInit_'../../../../openssl-armeabi-v7a/lib/libcrypto.a(c_zlib.o) :c_zlib.c:function zlib_stateful_init:error:undefined reference to'deflateInit_'../../../../openssl-armeabi-v7a/lib/libcrypto.a(c_zlib.o):c_zlib.c:function bio_zlib_ctrl:错误:未定义引用'deflate'../../../../openssl-armeabi-v7a/lib/libcrypto.a(c_zlib.o):c_zlib.c:function bio_zlib_ctrl:error:undefined reference到'zError'../../../../openssl-armeabi-v7a/lib/libcrypto .a(c_zlib.o):c_zlib.c:function bio_zlib_write:error:undefined reference to'deflate'../../../../openssl-armeabi-v7a/lib/libcrypto.a(c_zlib.o ):c_zlib.c:function bio_zlib_write:error:undefined reference to'zError'../../../../openssl-armeabi-v7a/lib/libcrypto.a(c_zlib.o):c_zlib.c: function bio_zlib_write:error:未定义引用'deflateInit_'../../../../openssl-armeabi-v7a/lib/libcrypto.a(c_zlib.o):c_zlib.c:function bio_zlib_read:error:undefined参考'膨胀'../../../../openssl-armeabi-v7a/lib/libcrypto.a(c_zlib.o):c_zlib.c:function bio_zlib_read:错误:未定义引用'zError'.. /../../../openssl-armeabi-v7a/lib/libcrypto.a(c_zlib.o):c_zlib.c:function bio_zlib_read:错误:未定义引用'inflateInit_'clang .exe:错误:链接器命令退出代码1失败(使用-v查看调用)ninja:build stopped:子命令失败 .
下面分享应用程序的build.gradle
defaultConfig {
applicationId "com.example.openssl"
minSdkVersion 14
targetSdkVersion 26
versionCode 1
versionName "1.0"
externalNativeBuild {
cmake {
cppFlags ""
}
}
ndk {
abiFilters 'armeabi-v7a'
}
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
externalNativeBuild {
cmake {
path "CMakeLists.txt"
}
}
文件夹结构: