java找不到“libcrypto.so”引用的符号“tcgetattr”
我正在为Android应用程序构建一个助手库,我需要为我正在使用的一些支持库提供一个完整的OpenSSL实现。我正在创建一个构建链并用它编译libssl
和libcrypto
,但在运行时我得到:
java.lang.ExceptionInInitializerError
Caused by: java.lang.UnsatisfiedLinkError: Cannot load library:
soinfo_relocate(linker.cpp:975): cannot locate symbol "tcgetattr" referenced by "libcrypto.so.1.0.0"...
我猜我需要做些什么来帮助在运行时定位tcgetattr
# 1 楼答案
Android运行时在API 19和API 21之间发生了显著变化。NDK库反映了这一变化,许多符号(例如,srand)现在从系统库中导出。因此,重要的是将APP_PLATFORM(如果使用Android.mk)或platformVersion(如果使用实验性插件)设置为不高于应用程序支持的最低SDK版本