5

I am trying to use the ePOS-Print SDK for Android.

It works fine on ARM Devices. Just not on x86 Devices.

Is the Library only working on ARM Devices or is there a way to make it work on x86 Devices?

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)
m7913d
  • 10,244
  • 7
  • 28
  • 56
user2270079
  • 127
  • 1
  • 1
  • 7

3 Answers3

6

I had a very similar error by trying to run an ARM app on Android x86. I was able to bypass it by installing libhoudini:

  1. On Android: Settings -> Apps Compatibility -> Enable Native Bridge
  2. Start Terminal Emulator (or press Alt-F1)
  3. Login as root: su -
  4. Run cd ~ /system/bin/enable_nativebridge
  5. Verify success by inspecting logs: logcat -T 10
  6. Reboot and re-install your ARM apps

More details

Dan M
  • 1,175
  • 12
  • 23
  • 2
    this saves my day. on android x86 9.0, the menu for configuring **Enable Native Bridge** is under **Android x86 Options**. – Bagus Tesa Feb 13 '20 at 12:33
1

I think this will help you

Put in gradle.properties this line

android.useDeprecatedNdk=true;

and in app/build.gradle this line in defaultConfig field

   ndk {
                abiFilters "armeabi", "armeabi-v7a","x86"
        }
Reena
  • 1,368
  • 1
  • 11
  • 25
  • Thanks for your response. I had to create a gradle.properties file. But it doesnt change anything. Do you have any other ideas? – user2270079 Apr 17 '17 at 08:18
  • no need to create gradle.properties if you are using androd studio. Its already exists in project structure – Reena Apr 17 '17 at 08:59
  • sure what part do you want me to post? – user2270079 Apr 17 '17 at 10:14
  • @Reena not working for me still can't find .so file with System.loadLibrary("ffmpeg"); iknw every thing is correct but it's device architecture problem – Ajay Pandya Mar 02 '19 at 10:45
1

I think you need build "libeposprint.so" file for x86.

Louis Nguyen
  • 347
  • 6
  • 18