Добавление файла .so в Android Studio

Я пытаюсь добавить внешнюю библиотеку 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 в моем проекте, в которую я включил внешние библиотеки, добавив строку компиляции 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 fresco

  • Добавление предварительно созданных файлов .so в проект с помощью плагина Android Gradle 0.7.3
  • получить контекст в classе без активности
  • MediaRecorder и VideoSource.SURFACE, остановка не удалось: -1007 (серьезная ошибка Android)
  • Выполнение не выполнено для задачи: app: compileDebugJavaWithJavac в Android Studio
  • Отправить HTTP-запрос GET с заголовком
  • Как установить GridView внутри ScrollView
  • Получить центр видимого элемента RecycleView при прокрутке
  • Не удалось решить: com.google.firebase: firebase-core: 11.2.0
  • Как создать Android-hashи Facebook Facebook?
  • setRotation (90) для съемки в портретном режиме не работает на устройствах samsung
  • Уведомление о Heads-Up - Android Lollipop
  • Interesting Posts

    Как сделать .lib-файл, когда есть .dll-файл и заголовочный файл

    Отключенный жесткий диск не будет монтироваться

    Почему intellisense и предложение кода перестают работать, когда Visual Studio открыта?

    jqGrid Pager Area – Использование шрифтов Awesome Icons

    Почему было сделано предложение о переключении?

    Ошибка: java: javacTask: исходный выпуск 8 требует целевого релиза 1.8

    Synergy предотвращает нажатия и перетаскивания в некоторых приложениях Windows

    Android – Язык WebView внезапно меняется на Android N

    Работайте на соседних элементах в RDD в Spark

    Как использовать два внешних монитора на Alienware m17x вместе с монитором ноутбука (всего 3 монитора)

    Любые идеи, почему я получаю задержку после нажатия «Сохранить как» или «Загрузить» в Google Chrome

    UITextView с подсветкой синтаксиса

    Hashcode и Equals для Hashset

    MSBuild Script и VS2010 публикуют применение преобразования Web.config

    Java 256-битное шифрование на основе AES на основе паролей

    Давайте будем гением компьютера.