2017-04-17 123 views
1

我正在嘗試使用適用於Android的ePOS-Print SDK。java.lang.UnsatisfiedLinkError有意想不到的e_machine:40

它在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) 

回答

1

我認爲這將有助於你

放在gradle.properties此行

android.useDeprecatedNdk=true; 

,並在app /的build.gradle此行defaultConfig場

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

感謝您的回覆。我不得不創建一個gradle.properties文件。但它沒有改變任何東西。你還有其他建議嗎? – user2270079

+0

如果您使用的是orrod studio,則不需要創建gradle.properties。它已經存在於項目結構 – Reena

+0

是的,我添加了它。但我仍然得到相同的錯誤 – user2270079

0

我認爲你需要爲x86構建「libeposprint.so」文件。