В моем приложении используются Here SDK и Twilio SDK. Оба используют собственные библиотеки (здесь SDK с местными библиотеками, локально подключенными к папкам/libs и/jniLibs, Twilio SDK подключен к jCenter). Но на Android 5.1 Здесь SDK выдает исключение «MISSING LIBRARIES: libMAPSJNI.so», хотя эта библиотека присутствует в результате APK. Я открыл папку, где моя программа установлена на устройстве, и сравнивала содержимое в двух случаях: с Twilio SDK или без него. Разница заключается в том, что при подключении Twilio API folder/lib является файлом, и по очевидным причинам загрузчик не может видеть внутри него, то есть необходимо инициализировать исходные библиотеки здесь SDK. Если удалить зависимость градиента Twilio, сборка происходит нормально. Что может быть причиной и как это исправить? В случае необходимости я могу приложить тестовый проект с этим LIBSGradle родные библиотеки не найдены на устройстве, но представлены в apk
ответ
Вы должны изменить свой build.gradle так:
android {
(...)
splits {
abi {
enable true
reset()
include 'armeabi-v7a'
universalApk false
}
}
(...)
}
Это, вероятно, потому, что Twilio SDK поддерживает x86 и HERE SDK в настоящее время не поддерживает ,
Определяя splits
блок вы можете сказать Gradle создать APKs for each listed ABI:
include "armeabi", "armeabi-v7a", "x86", "mips"
В качестве альтернативы вы можете включить все желаемые АБИС в один APK, добавив следующий фильтр:
android {
(...)
defaultConfig {
(...)
ndk {
// allow only 32bit *.so libs
abiFilters "armeabi", "armeabi-v7a", "x86", "mips"
}
}
}
Оба подхода исключают 64-битную функциональность, которая может столкнуться с 32-разрядным HERE SDK, но последний будет поддерживать больше устройств с одним APK.
Некоторые библиотеки, как новый Android Room Persistence библиотеки, добавить 32-битные ароматы вместе с двумя 64-битными ABI вкусов arm64-V8A и x86_64. Поскольку HERE SDK на данный момент предоставляет только 32-битную библиотеку, следует исключить 64-битные варианты lib. С другой стороны, ожидается, что 64-битные устройства могут изящно обрабатывать 32-битные библиотеки.
Отлично, он работает. Спасибо. – Lumen
Привет, Артем, Спасибо, что вскочил на сообщество Twilio. Можем ли мы отправить вам рубашку, чтобы поделиться нашей оценкой? Отправьте электронное письмо на [email protected] для получения более подробной информации. –
Это относится и к другим архитектурам там. ЗДЕСЬ SDK также не поддерживает (например, arm64-v8a) – AndrewJC