Nano Hash - криптовалюты, майнинг, программирование

Добавление файла .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, и я добавил библиотеку, перейдя в настройки модуля -> библиотеки и добавив каталог с банкой и каталог с таким файлом.

23.05.2013

  • как добавить .so и поместить в какой каталог? 23.05.2013
  • Я просто добавил каталог, в котором он находится, потому что я не знаю, как его добавить. Они оба находятся в /libs 23.05.2013
  • добавить файл .so из каталога вне проекта Android: stackoverflow.com/questions/50713933/ 11.06.2018

Ответы:


1

Вы можете добавить предварительно созданные файлы *.so в Android Studio, используя gradle 0.7.2+. Сначала создайте jniLibs в этом месте /app/src/main/ и скопируйте всю папку с файлами *.so (armeabi, armeabi-v7a, mips, x86) в jniLibs.

введите здесь описание изображения

16.03.2014
  • Ты спас мне жизнь, братан, я пытаюсь 2,5 часа, работает отлично, все странные ошибки исчезли, спасибо, что поделился своей мудростью. @Josh Wilson Вы можете отметить как решение? 18.05.2015
  • @TGMCians, не могли бы вы показать нам фрагмент кода Gradle, который требуется для компиляции файлов .so. 25.05.2015
  • Тааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааамааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааа по Почва, вы очень помогли. 18.09.2015
  • не могли бы вы помочь мне добавить библиотеку, написанную на C, в мой проект Android. 25.05.2016
  • Что такое основной класс? Не могу найти 18.08.2016
  • Есть ли какой-нибудь документ для размещения so файлов? 27.08.2016
  • @TGMCians Вы великолепны .. :) 22.10.2016
  • Требуется ли предварительно созданный файл .hpp для cmake. Это срочно, пожалуйста, дайте мне ответ 28.05.2019
  • Очень ценю этот ответ. Спасибо. Однако нормально ли, что такие люди, как я, из мира C++, так сильно пытаются найти этот ответ? На веб-сайте собственной разработки для Android почти нет документации. Это плохая документация или я просто не знаю? 05.06.2020

  • 2

    Чтобы использовать нативную библиотеку (такие файлы), вам нужно добавить некоторые коды в файл «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

    04.03.2015
  • не забудьте добавить armeabi-v7 и x86! 30.06.2015

  • 3

    У меня была папка libs в моем проекте, куда я включил внешние библиотеки, добавив строку compile fileTree (dir: 'libs', include: '*.jar') в зависимости {} в файле сборки gradle.

    Затем я создал папку lib и внутри нее папку armeabi, куда я вставил все необходимые файлы .so. Затем я заархивировал папку в .zip (структура внутри zip-файла теперь lib/armeabi/*.so). Я переименовал .zip-файл в armeabi.jar и добавил его в папку libs в качестве внешней библиотеки.

    09.05.2015

    4

    Я думаю, что это проблема новой системы сборки Gradle. Попробуйте решение этого ответа. Существует также ссылка на обсуждение группы Google, в котором более подробно описывается решение и проблемы.

    24.06.2013

    5
    splits {
        abi {
            enable true
            reset()
            include 'x86', 'x86_64', 'arm64-v8a', 'armeabi-v7a', 'armeabi'
            universalApk false
        }
    }
    

    Я получаю этот код из библиотеки facebook fresco

    07.07.2015
  • Разве этот код не предназначен для разделения apk на более мелкие части в соответствии с зависимыми системами, чтобы уменьшить общий размер apk? 25.01.2017
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..