2015-10-19 16 views
5

buduję biblioteka Helper dla Androida i potrzebuję pełnego wdrożenia OpenSSL dla niektórych bibliotek wspierających używam. Tworzę łańcuch gromadzeniu i opracowywaniu libssl i libcrypto z nim, ale w czasie wykonywania otrzymuję:nie można zlokalizować symbol „tcgetattr” odwołuje „libcrypto.so”

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"... 

Zgaduję, że coś muszę zrobić, aby pomóc zlokalizować tcgetattr w czasie wykonywania?

+1

Prawdopodobnie zbudować używając Android bibliotek API dla platformy 21 (Android 5.0 Lollipop), ale badania na urządzeniu, które działa API 19 (Android 10 KitKat) lub niższa. –

+0

@AlexCohn Jesteś wygaszacz życia! To było to! Zgaduję, musimy opierać się na API 19 (badanie, które teraz)? Coś innego? * Zapraszam do zamieścić odpowiedź, więc mogę go przyjąć. – Kagetsuki

Odpowiedz

5

Środowisko wykonawcze do systemu Android zmieniło się znacząco między interfejsem API 19 a interfejsem API 21. Biblioteki NDK odzwierciedlają tę zmianę, a wiele symboli (na przykład srand) jest eksportowanych z bibliotek systemowych. Dlatego ważne jest, aby ustawić APP_PLATFORM (jeśli Android.mk jest stosowany) lub platformVersion (jeśli jest używana wtyczka eksperymentalna) nie wyższą niż najniższa wersji SDK, że aplikacja obsługuje.

Powiązane problemy