Ответ 1
Вы можете добавить предварительно созданные *.so файлы в Android Studio с помощью gradle 0.7.2+. Сначала создайте jniLibs в этом месте /app/src/main/location и скопируйте всю папку с *.so файлами (armeabi, armeabi-v7a, mips, x86) в jniLibs.
Я пытаюсь добавить внешнюю библиотеку Scandit. Я продолжаю получать эту ошибку:
java.lang.UnsatisfiedLinkError: Couldn't load scanditsdk-android-3.3.1 from loader dalvik.system.PathClassLoader[dexPath=/data/app/com.clover.barcode2-1.apk,libraryPath=/data/app-lib/com.clover.barcode2-1]: findLibrary returned null
at java.lang.Runtime.loadLibrary(Runtime.java:365)
.....
Я предполагаю, что это потому, что я не правильно включаю файл .so, который поставляется с библиотекой, но я не могу понять, как это сделать.
Я использую Android Studio, и я добавил библиотеку, перейдя в настройки модуля → библиотеки и добавив каталог с банкой и каталогом с таким файлом.
Вы можете добавить предварительно созданные *.so файлы в Android Studio с помощью gradle 0.7.2+. Сначала создайте jniLibs в этом месте /app/src/main/location и скопируйте всю папку с *.so файлами (armeabi, armeabi-v7a, mips, x86) в jniLibs.
Чтобы использовать собственную библиотеку (так что файлы) Вам нужно добавить некоторые коды в файл "build.gradle".
Этот код предназначен для очистки каталога "armeabi" и копирования файлов "so" в "armeabi", в то время как "чистый проект".
task copyJniLibs(type: Copy) {
from 'libs/armeabi'
into 'src/main/jniLibs/armeabi'
}
tasks.withType(JavaCompile) {
compileTask -> compileTask.dependsOn(copyJniLibs)
}
clean.dependsOn 'cleanCopyJniLibs'
Мне говорили о нижеследующем. https://gist.github.com/pocmo/6461138
У меня была папка с libs в моем проекте, в которую я включил внешние библиотеки, добавив строку compit fileTree (dir: 'libs', include: '*.jar') в зависимости {} в файле сборки gradle.
Затем я создал папку lib и внутри нее - папку armeabi, в которую я вставил все необходимые .so файлы. Затем я закрепил папку в .zip(структура внутри zip файла теперь является lib/armeabi/*.) Я переименовал ZIP файл в armeabi.jar и добавили его в папку libs в качестве внешней библиотеки.
Я думаю, что это проблема новой системы сборки gradle. Попробуйте решить этот ответ. Существует также ссылка на групповое обсуждение google, в котором описывается решение и проблемы более подробно.
splits {
abi {
enable true
reset()
include 'x86', 'x86_64', 'arm64-v8a', 'armeabi-v7a', 'armeabi'
universalApk false
}
}
Я получаю этот код из библиотеки фрески facebook