Я давно использовал в проекте нативную библиотеку, и все работало нормально.Сейчас я использую Android Studio 3.2.1
и Graddle 4.6
Как я уже говорил, все прошло хорошо в течение долгого времени.Теперь я сделал некоторые изменения и перестроил новый apk, и при запуске на System.loadLibrary("mylibrary")
я получил эту ошибку:
java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[...]couldn't find "mylibrary.so"
В структуре моего проекта у меня есть jniLibs\armeabi\mylibrary.so
.
Итак, я начал искать, что это UnsatisfiedLinkError
и что может вызвать это из ниоткуда.
Решение, которое запустило apk как надо, было добавлено в мой файл gradle:
ndk{
abiFilters "armeabi"
}
Я не понимаю, почему он работал в прошлом месяце, а теперь нет?Что-то изменилось в Graddle?Кроме того, кто-нибудь может объяснить, что именно делает abiFilters?В их документах написано Specifies the Application Binary Interfaces (ABI) that Gradle should build outputs for and package with your APK.
, но я вижу, что он существовал долгое время, и это не что-то новое.