android-ndk之genymotion ARM 翻译 : "…/lib/arm/libndk.so" has unexpected e_machine: 40

lovecherry 阅读:65 2024-10-25 08:56:14 评论:0

这是full code , 当我尝试 android jni 示例时,我得到 has unexpected e_machine ,完整的步骤是:

  • $ /media/roroco/disk750/adr/android-ndk-r10e/ndk-buil
  • 在项目中,新的 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) 
    

    请您参考如下方法:

    我找到了解决方案,原因是我使用genymotion并安装了genymotion armtranslation,armtranslation有bug,所以我应该build c to x86 device,步骤是:

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

  • 标签:Android
    声明

    1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

    关注我们

    一个IT知识分享的公众号