0

我正在使用 Android POS 系统应用程序,并且我已经集成了THERMAL PRINT SDK

当我开始打印时,出现以下错误 -

原因:java.lang.UnsatisfiedLinkError: dlopen failed: library /system/lib/libposprinter.so" not found

我被困在这个问题上。

请帮忙!

4

1 回答 1

0

我大约在 6 个月前处理了 epson 库,但不确定它是否是同样的问题。我感觉您的设备正在尝试使用由于 epson 未提供而不存在的本机库之一。您可以强制您的应用程序回退到提供的本机库文件夹以使其正常工作

我最终将我的应用程序限制为仅 armeabi-v7a 和 x86 架构类型。它确实使应用程序在某些设备上不兼容,但对我们的用例来说不是问题。

我有以下设置

  1. 确保将 lib 添加到libs/ePOS2-2.5.1.a.jargradle 之类compile files('libs/ePOS2-2.5.1.a.jar')或其他内容中并在其中引用

  2. 添加适当的本机库,例如src/main/jiniLibs/armeabi-v7a/libepos2.sosrc/main/jiniLibs/x86/libepos2.so

  3. 更新您的 gradle buildtypes 以限制 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

于 2018-04-09T12:02:37.947 回答