我正在使用Android POS系统应用程序,并且我已经集成了 THERMAL PRINT SDK
当我开始进行打印时,得到以下错误 -
引起:java.lang.UnsatisfiedLinkError:dlopen失败:library /system/lib/libposprinter.so"找不到
我陷入了这个问题。
请帮助!
答案 0 :(得分:0)
我在6个月前处理过epson图书馆,但不确定它是否也是同样的问题。我有一种感觉,你的设备正试图使用一个由于epson没有提供它而不存在的本地库。您可以强制您的应用程序回退到提供的本机库文件夹,以使其正常工作
我最终将我的应用程序仅限制为armeabi-v7a和x86 arch类型。它确实使应用程序在某些设备上不兼容,但对我们的用例来说不是问题。
我有以下设置
确保将lib添加到libs/ePOS2-2.5.1.a.jar
并以gradle引用,例如compile files('libs/ePOS2-2.5.1.a.jar')
或其他
添加适当的原生图书馆,例如src/main/jiniLibs/armeabi-v7a/libepos2.so
和src/main/jiniLibs/x86/libepos2.so
更新您的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