java.lang.UnsatifiedLinkError具有意外的e_计算机:40

java.lang.UnsatifiedLinkError具有意外的e_计算机:40,java,android,epson,Java,Android,Epson,我正在尝试使用适用于Android的ePOS打印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-

我正在尝试使用适用于Android的ePOS打印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)
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)失败:dlopen失败:“/data/app/at.test.test-2/lib/x86/libeposprint.so”有意外的E_机器:40
进程:at.calyx.calyxpos,PID:10989
java.lang.UnsatifiedLinkError:dlopen失败:“/data/app/at.test.test/lib/x86/libeposprint.so”具有意外的e_计算机:40
位于java.lang.Runtime.loadLibrary(Runtime.java:371)
位于java.lang.System.loadLibrary(System.java:989)
在com.epson.eposprint.Builder上(Builder.java:17)

我想这会对你有所帮助

把gradle.properties放在这行

android.useDeprecatedNdk=true;
在app/build.gradle中,在defaultConfig字段中删除这一行

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

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

我在Android x86上运行ARM应用时遇到了一个非常类似的错误。我可以通过安装libhoudini来绕过它:

  • 在Android上:
    Settings->Apps Compatibility->Enable Native Bridge
  • 启动终端仿真器(或按
    Alt-F1
  • 以root用户身份登录:
    su-
  • 
    光盘~
    /系统/bin/启用\本地网桥
    
  • 通过检查日志来验证是否成功:
    logcat-T 10
  • 重新启动并重新安装ARM应用程序

  • 感谢您的回复。我必须创建一个gradle.properties文件。但这并没有改变任何事情。您还有其他想法吗?如果您使用的是androd studio,则无需创建gradle.properties。它已经存在于项目结构中确定您想让我发布什么部分?@Reena不为我工作,仍然找不到。因此,使用System.loadLibrary(“ffmpeg”)的文件;iknw每件事都是正确的,但这是设备架构问题,这节省了我的时间。在android x86 9.0上,用于配置启用本机网桥的菜单位于android x86选项下。