【问题标题】:/system/lib/libposprinter.so" not found | POS Printing/system/lib/libposprinter.so" 未找到 | POS 打印
【发布时间】:2018-09-18 19:03:44
【问题描述】:

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

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

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

我陷入了这个问题。

请帮忙!

【问题讨论】:

  • 我不知道除了设备制造商/SDK开发者之外的任何人可以在这里为您提供什么帮助。 SDK 期望本机库存在于该硬件的特定位置,但事实并非如此。应用程序无法在该位置放置本机库,因此 SDK 必须预期它已被预安装。

标签: android thermal-printer pos


【解决方案1】:

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

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

我有以下设置

  1. 确保将 lib 添加到 libs/ePOS2-2.5.1.a.jar 并在 gradle 中引用,例如 compile files('libs/ePOS2-2.5.1.a.jar') 或其他任何内容

  2. 添加适当的原生库,例如 src/main/jiniLibs/armeabi-v7a/libepos2.sosrc/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

【讨论】:

    猜你喜欢
    • 2018-05-13
    • 1970-01-01
    • 2014-11-16
    • 1970-01-01
    • 2015-05-30
    • 1970-01-01
    • 2014-12-14
    • 2020-09-30
    相关资源
    最近更新 更多