Я делаю приложение в Android Studio, которое использует две библиотеки. Собственная библиотека с оберткой для Android и jar-library. По какой-то причине родная библиотека не будет загружаться, если другая библиотека jar-компиляции будет скомпилирована в проект. Поэтому, если я запускаю приложение только с родной библиотекой, все работает нормально. Я добавляю другую jar-библиотеку в свой gradle файл и стрелу... UnsatisfiedLinkError:
java.lang.UnsatisfiedLinkError: Couldn't load MobileOcrEngine from loader dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.example.app-1.apk"],nativeLibraryDirectories=[/data/app-lib/com.example.app-1, /vendor/lib, /system/lib]]]: findLibrary returned null
Мое приложение отлично работает, когда я использую это:
dependencies {
compile fileTree(include: ['*.jar'], dir: 'src/main/jniLibs')
compile 'com.android.support:support-v13:21.0.2'
compile project(':wheel')
}
Ошибка возникает, когда я пытаюсь:
dependencies {
compile fileTree(include: ['*.jar'], dir: 'src/main/jniLibs')
compile 'com.android.support:support-v13:21.0.2'
compile project(':wheel')
compile files('libs/realm-0.78.0.jar')
}
или когда я пытаюсь использовать одну и ту же библиотеку, но используя репозиторий Maven:
dependencies {
compile fileTree(include: ['*.jar'], dir: 'src/main/jniLibs')
compile 'com.android.support:support-v13:21.0.2'
compile project(':wheel')
compile 'io.realm:realm-android:0.78.0'
}
или если я попытаюсь поместить банку в папку jniLibs:
dependencies {
compile fileTree(include: ['*.jar'], dir: 'src/main/jniLibs')
compile 'com.android.support:support-v13:21.0.2'
compile project(':wheel')
}
Я не знаю, где лежит корень проблемы. С одной из двух библиотек, Android Studio или я делаю что-то неправильно?
Примечание: Я знаю, что в StackOverflow было много вопросов относительно UnsatisfiedLinkErrors, но ни одна из них не предоставляет решения для моей проблемы. У меня нет проблем с загрузкой собственной библиотеки, если это единственная библиотека, которую я использую...