java.lang.UnsatisfiedLinkError有意外的e_machine:40

时间:2017-04-17 07:22:39

标签: java android epson

我正在尝试使用适用于Android的ePOS-Print SDK。

它在ARM设备上运行良好。只是不在x86设备上。

库是仅在ARM设备上运行还是有办法使其在x86设备上运行?

        04-17 09:11:53.390 10989-12211/at.test.test E/art: dlopen("/data/app/test.test-2/lib/x86/libeposprint.so", RTLD_LAZY) failed: dlopen failed: "/data/app/at.test.test-2/lib/x86/libeposprint.so" has unexpected e_machine: 40



                                    Process: at.calyx.calyxpos, PID: 10989
                                    java.lang.UnsatisfiedLinkError: dlopen failed: "/data/app/at.test.test/lib/x86/libeposprint.so" has unexpected e_machine: 40
                                    at java.lang.Runtime.loadLibrary(Runtime.java:371)
                                    at java.lang.System.loadLibrary(System.java:989)
                                    at com.epson.eposprint.Builder.<clinit>(Builder.java:17)

3 个答案:

答案 0 :(得分:2)

我认为这会对你有帮助

将此行放入gradle.properties

android.useDeprecatedNdk=true;

和app / build.gradle中的defaultConfig字段中的这一行

   ndk {
                abiFilters "armeabi", "armeabi-v7a","x86"
        }

答案 1 :(得分:1)

我认为您需要为x86构建“libeposprint.so”文件。

答案 2 :(得分:0)

尝试在Android x86上运行ARM应用程序时出现了类似的错误。我可以通过安装libhoudini

来绕过它
  1. 在Android上:Settings -> Apps Compatibility -> Enable Native Bridge
  2. 启动终端仿真器(或按Alt-F1
  3. 以root用户身份登录:su -
  4. 运行 cd ~ /system/bin/enable_nativebridge
  5. 通过检查日志验证成功:logcat -T 10
  6. 重新启动并重新安装ARM应用
  7. More details