Mam dwie biblioteki macierzyste innych firm, na przykład libfoo.so
i libbar.so
. Mam trudności z załadowaniem obu tych bibliotek. Skopiowałem je do folderu libs
pod odpowiednim łukiem procesora (armeabi, mips i x86), a także ustawiono katalog Native libs
pod Struktura projektu> Moduły> Android> Struktura, aby wskazać ten folder libs. Mogę załadować tylko jedną bibliotekę, ale nie drugą. Jeśli spróbuję załadować je pojedynczo (usuwając inne biblioteki), działa dobrze. Wyjątek, który otrzymuję:Jak dodać wiele bibliotek rodzimych (.so) w systemie IntelliJ
java.lang.UnsatisfiedLinkError: Couldn't load foo from loader dalvik.system.PathClassLoader
Co należy zrobić, aby środowisko wykonawcze IntelliJ lub Android znalazło obie te biblioteki macierzyste?
Jak je załadowałeś? – bricklore
Czy szukałeś wynikowego pliku .APK, aby zobaczyć, co zostanie tam umieszczone? To tylko plik zip - otwórz go 7-Zip lub jakikolwiek inny menedżer plików zip i powinieneś zobaczyć wszystkie pliki .so tam. – SomeCallMeTim
@SomeCallMeTime: Dziękuję koleś za nauczenie mnie, jak polecać biblioteki wewnątrz apk. Wystąpił problem z java.lang.UnsatisfiedLinkError: Nie znaleziono żadnej implementacji dla nativeNewInstance systemu Android mapy autonavi. Dodaję dwie niezależne biblioteki jni w moim kodzie. i okazało się, że jedna lib obsługuje wiele architektur cpu, a jedna obsługuje tylko armeabi, więc usunąłem inne architektury z tej, która obsługuje wiele procesorów i umieszczam tylko pliki armeabi w moim projekcie i teraz działa dobrze –