Moja aplikacja używa Here SDK i Twilio SDK. Oba używają rodzimych bibliotek (tutaj SDK z natywnymi bibliotekami lokalnie podłączonymi z/libs i/jniLibs folderów, Twilio SDK podłączonym z jCenter). Ale w systemie Android 5.1 SDK zgłasza wyjątek "BRAK BRAKÓW: libMAPSJNI.so", chociaż ta biblioteka jest obecna w wynikowym pliku APK. Otworzyłem folder, w którym mój program został zainstalowany na urządzeniu i porównałem zawartość w dwóch przypadkach: z lub bez pakietu SDK Twilio. Różnica polega na tym, że po podłączeniu folderu/biblioteki Twilio API jest plik, i z oczywistych względów program ładujący nie widzi w nim natywnych bibliotek potrzebnych do zainicjowania tutaj pakietu SDK. W przypadku usunięcia zależności od grubości Twilio zespół występuje normalnie. Jaki może być powód i jak to naprawić? W razie potrzeby mogę dołączyć projekt testowy z tymi bibliotekamiNatywne biblioteki Gradle nie znaleziono na urządzeniu, ale są obecne w apk
Odpowiedz
Trzeba zmodyfikować build.gradle tak:
android {
(...)
splits {
abi {
enable true
reset()
include 'armeabi-v7a'
universalApk false
}
}
(...)
}
To prawdopodobnie dlatego Twilio SDK obsługuje x86 i TUTAJ SDK obecnie nie obsługuje .
Definiując splits
bloku można powiedzieć Gradle stworzyć APKs for each listed ABI:
include "armeabi", "armeabi-v7a", "x86", "mips"
Ewentualnie można uwzględnić wszystkie żądane Abis w jeden APK dodając następujący filtr:
android {
(...)
defaultConfig {
(...)
ndk {
// allow only 32bit *.so libs
abiFilters "armeabi", "armeabi-v7a", "x86", "mips"
}
}
}
Oba podejścia wykluczą funkcjonalność 64-bitową, która może kolidować z 32-bitowym HERE SDK, ale ten drugi będzie obsługiwał więcej urządzeń za pomocą jednego pliku APK.
Niektóre biblioteki, jak nowy Android Room Persistence biblioteki 32-bitowe dodać smaki wraz z dwoma 64-bitowych ABI smakach arm64-V8A i x86_64. Od HERE SDK w chwili obecnej zapewnia tylko 32-bitowe lib powinno być bezpieczne, aby wykluczyć 64-bitowe warianty lib. Z drugiej strony oczekuje się, że 64-bitowe urządzenia mogą z wdziękiem obsługiwać 32-bitowe biblioteki.
Doskonale, działa. Dziękuję Ci. – Lumen
Hej Artem, dzięki za skakanie tutaj dla społeczności Twilio. Czy możemy wysłać ci koszulkę, aby podzielić się z nami naszą wdzięcznością? Wyślij wiadomość e-mail na adres [email protected], aby uzyskać szczegółowe informacje. –
Dotyczy to innych architektur, których HERE SDK również nie obsługuje (np. Arm64-v8a) – AndrewJC