【发布时间】:2014-02-23 20:13:48
【问题描述】:
我尝试按照this answer 中的描述为arm Android 构建OpenSSL。但是当我使用“共享”标志构建 OpenSSL 时,它会生成 4 个文件:libcrypto.so.1.0.0、libssl.so.1.0.0 和 2 个符号链接:libcrypto.so 和 libssl.so
在 Android.mk 文件中,我将这些库链接到项目:
include $(CLEAR_VARS)
LOCAL_MODULE := openssl-ssl
LOCAL_SRC_FILES := libs/libssl.so
include $(PREBUILT_SHARED_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := openssl-crypto
LOCAL_SRC_FILES := libs/libcrypto.so
include $(PREBUILT_SHARED_LIBRARY)
但是当我尝试运行我的应用程序时 java.lang.UnsatisfiedLinkError 出现消息“无法加载库 libssl.so.1.0.0...”
我尝试删除链接并将 libssl.so.1.0.0 和 libcrypto.so.1.0.0 分别重命名为 libssl.so 和 libcrypto.so,但没有帮助。
如何在我的项目中使用 OpenSSL?
【问题讨论】:
-
为什么?已经支持 SSL。
-
是的,Android 部分支持 OpenSSL,但开发人员无法访问 /system/lib 下的库。
-
成千上万的开发人员使用 NDK 中未包含的
/system/lib库。很少遇到问题。 OTOH,/system/lib/libssl.so不是最新版本,可能缺少一些功能。 -
如何使用 NDK 中的这些库?
标签: android android-ndk java-native-interface openssl