Android ndk genymotion ARM翻译:“…/lib/arm/libndk.so“;有意外的e_机器:40

Android ndk genymotion ARM翻译:“…/lib/arm/libndk.so“;有意外的e_机器:40,android-ndk,android-emulator,Android Ndk,Android Emulator,这里是,当我尝试android jni示例时,我得到有意外的e_机器,完整步骤如下: $/media/roroco/disk750/adr/android-ndk-r10e/ndk buil 在project中,创建新的android应用程序,并运行它 并获得以下输出 Process: com.mamlambo.sample.ndk1, PID: 5560 java.lang.UnsatisfiedLinkError: dlopen failed: "/data/app/co

这里是,当我尝试android jni示例时,我得到
有意外的e_机器
,完整步骤如下:

  • $/media/roroco/disk750/adr/android-ndk-r10e/ndk buil
  • 在project中,创建新的android应用程序,并运行它
并获得以下输出

Process: com.mamlambo.sample.ndk1, PID: 5560
        java.lang.UnsatisfiedLinkError: dlopen failed: "/data/app/com.mamlambo.sample.ndk1-1/lib/arm/libndk1.so" has unexpected e_machine: 40
            at java.lang.Runtime.loadLibrary(Runtime.java:371)
            at java.lang.System.loadLibrary(System.java:988)
            at com.mamlambo.sample.ndk1.AndroidNDK1SampleActivity.<clinit>(AndroidNDK1SampleActivity.java:35)
            at java.lang.reflect.Constructor.newInstance(Native Method)
            at java.lang.Class.newInstance(Class.java:1606)
Process:com.mamlambo.sample.ndk1,PID:5560
java.lang.UnsatisfiedLinkError:dlopen失败:“/data/app/com.mamlambo.sample.ndk1-1/lib/arm/libndk1.so”具有意外的e_计算机:40
位于java.lang.Runtime.loadLibrary(Runtime.java:371)
位于java.lang.System.loadLibrary(System.java:988)
位于com.mamlabo.sample.ndk1.AndroidNDK1SampleActivity。(AndroidNDK1SampleActivity.java:35)
位于java.lang.reflect.Constructor.newInstance(本机方法)
位于java.lang.Class.newInstance(Class.java:1606)

我找到了解决方案,原因是我使用了genymotion并安装了genymotion armtranslation,armtranslation有bug,所以我应该构建c到x86设备,步骤如下:

  • 创建jni/Application.mk,编写“APP_ABI:=x86 armeabi armeabi-v7a”
  • ndk构建
  • 在genymotion中调试应用程序

使用Visual Studio for Mac构建应用程序的发布版本并在带有ARM翻译的Genymotion上运行时,我遇到了类似的错误
java.lang.unsatifiedlinkerror:dlopen失败:“/data/app//lib/arm/libmonodroid.so”有意外的e_机器:40

  • 我通过以下步骤解决了这个问题:

  • 右键单击项目名称

  • 选择选项

  • 选择构建

  • 选择Android构建

  • 配置更改为释放(活动)

  • 转到高级选项卡,并在支持的ABI下添加x86