2015-10-19 54 views
5

我正在爲Android應用程序構建一個幫助程序庫,並且我需要一些完整的OpenSSL實現來支持我正在使用的一些支持庫。我創建一個構建鏈和編譯libssllibcrypto與它但在運行時我得到:無法找到「libcrypto.so」所引用的符號'tcgetattr'

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

您可能使用適用於API 21(Android 5.0 Lollipop)的Android平臺庫進行構建,但可以在運行API 19(Android 10 KitKat)或更低版本的設備上進行測試。 –

+0

@AlexCohn你是一個拯救生命的人!就是這樣!我猜我們需要建立在API 19上(現在測試)?還有別的嗎? *隨時發佈答案,以便我可以接受它。 – Kagetsuki

回答

5

Android運行時在API 19和API 21之間發生了很大的變化.NDK庫反映了這種變化,許多符號(例如srand)現在從系統庫中導出。因此,設置APP_PLATFORM(如果使用Android.mk)或platformVersion(如果使用實驗性插件)不高於您的應用支持的最低SDK版本,則很重要。

相關問題