/system/lib/libposprinter.so" не найден | POS-печать

Я работаю с системным приложением Android POS и интегрировал THERMAL PRINT SDK.

Когда я начинаю печатать, получаю следующую ошибку:

Причина: java.lang.UnsatisfiedLinkError: ошибка dlopen: библиотека /system/lib/libposprinter.so" не найдена

Я застрял в этом вопросе.

Пожалуйста помоги!


person Shoeb Siddique    schedule 09.04.2018    source источник
comment
Я не знаю, как кто-либо, кроме производителя устройства/разработчика SDK, может вам здесь помочь. SDK ожидает, что собственная библиотека будет существовать в определенном месте на этом оборудовании, но это не так. Приложение не может поместить собственную библиотеку в это место, поэтому SDK должен ожидать, что она была предварительно установлена.   -  person CommonsWare    schedule 09.04.2018


Ответы (1)


Я имел дело с библиотекой epson около 6 месяцев назад, но не уверен, что это та же проблема. У меня такое ощущение, что ваше устройство пытается использовать одну из собственных библиотек, которой не существует из-за того, что epson ее не предоставляет. Вы можете заставить свое приложение вернуться к предоставленной папке собственной библиотеки, чтобы оно работало.

В итоге я ограничил свое приложение только типами арки armeabi-v7a и x86. Это сделало приложение несовместимым на некоторых устройствах, но не было проблемой для нашего варианта использования.

У меня была следующая установка

  1. Убедитесь, что библиотека добавлена ​​​​в libs/ePOS2-2.5.1.a.jar и указана в gradle, например compile files('libs/ePOS2-2.5.1.a.jar') или что-то еще

  2. Добавьте соответствующие собственные библиотеки, такие как src/main/jiniLibs/armeabi-v7a/libepos2.so и src/main/jiniLibs/x86/libepos2.so

  3. обновите типы сборки gradle, чтобы ограничить abis, например

.

buildTypes {
    ...
    release {
        debuggable false
        signingConfig signingConfigs.release
        shrinkResources false
        minifyEnabled true  // Deobfuscation mapping file located at app/build/outputs/mapping/release/
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        testProguardFile 'proguard-rules-test.pro'
        ndk {
            abiFilters 'armeabi-v7a', 'x86'
        }
    }
}

Я использовал это в качестве руководства https://android.jlelse.eu/controlling-apk-size-when-using-native-libraries-45c6c0e5b70a

person mononz    schedule 09.04.2018