【发布时间】:2017-09-27 14:49:01
【问题描述】:
将 openssl 库 (ssl/crypto) 与我的 Android 本机代码链接时出现以下错误。我使用 openssl v1.0.2l 代码并使用 android-sdk/ndk-bundle 目录下的 ndk-build 构建它。
错误信息
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.pkg-name.client, PID: 26925
java.lang.UnsatisfiedLinkError: **dlopen failed: cannot locate symbol "i2d_DHxparams"** referenced by "/data/app/com.pkg-name.client-1/lib/arm/libnative-lib.so"...
我的 android-config.make 文件有以下内容:
#
# These flags represent the build-time configuration of openssl for android
#
# They were pruned from the "Makefile" generated by running ./Configure from import_openssl.sh
#
# From CLFAG=
LOCAL_CFLAGS += -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -DL_ENDIAN -O3 -fomit-frame-pointer -Wall #-DTERMIO
# From DEPFLAG=
LOCAL_CFLAGS += -DOPENSSL_NO_EC_NISTP_64_GCC_128 -DOPENSSL_NO_SCTP \
-DOPENSSL_NO_CAMELLIA -DOPENSSL_NO_CAPIENG -DOPENSSL_NO_CAST -DOPENSSL_NO_CMS -DOPENSSL_NO_GMP -DOPENSSL_NO_IDEA -DOPENSSL_NO_JPAKE -DOPENSSL_NO_MD2 -DOPENSSL_NO_MDC2 -DOPENSSL_NO_RC5 -DOPENSSL_NO_SHA0 -DOPENSSL_NO_RFC3779 -DOPENSSL_NO_SEED -DOPENSSL_NO_STORE -DOPENSSL_NO_WHIRLPOOL
#Copied by seaching for the OPENSSL_NO_
#LOCAL_CFLAGS += -DOPENSSL_NO_DEPRECATED
# Extra
LOCAL_CFLAGS += -DOPENSSL_NO_HW -DOPENSSL_NO_ENGINE -DZLIB
# Debug
# LOCAL_CFLAGS += -DCIPHER_DEBUG
如果我需要启用任何标志,请告诉我。 我尝试了适用于 Android 的预构建 openssl 库并遇到了类似问题。
【问题讨论】:
标签: ssl android-ndk openssl