我有一个ARM编译库。我无法访问源代码。我想在我自己的应用程序中使用这个库。该应用程序应该在基于x86的AVD上运行(出于性能原因)。使用houdini(Android模拟器)在基于x86的AVD上运行ARM库

问题是,我找不出如何在使用houdini的x86环境中运行此ARM库。我下载了houdini-libs并将它们复制到/system/lib/ resp。到/system/lib/arm/并试图运行我的apk。

我尝试三种不同的方法,但都失败了:

如果我的ARM-库复制到/lib/armeabi/并与gradle这个标志 splits {

abi {

enable true

reset()

include 'x86', 'armeabi'

universalApk true

}

}

安装通用的编译-apk以Failure [INSTALL_FAILED_NO_MATCHING_ABIS: Failed to extract native libraries, res=-113]失败。

如果我将ARM库复制到/lib/armeabi/并使用universalApk false进行编译,则lib在结果x86-apk中不存在。库调用失败,... couldn't find "libXYZ.so"(这很明显,因为它不存在)。

如果我将ARM库复制到/lib/x86/库调用失败,并且java.lang.UnsatisfiedLinkError: dlopen failed: "/data/app/com.jni.example/lib/x86/libXYZ.so" has unexpected e_machine: 40。机器码40是ARM(这是正确的,图书馆确实是ARM),但我不明白为什么这不是由houdini翻译的。

有什么办法可以在x86仿真器上运行ARM库吗?如何设置houdini?

在此先感谢!

编辑:

一切工作正常,问题是库调用现在失败一个新的错误:

D/dalvikvm: Trying to load lib /data/app-lib/com.jni.example-1/libXYZ.so 0xa4df6228

D/dalvikvm: VFY: replacing opcode 0x62 at 0x0002

I/dalvikvm: DexOpt: unable to optimize static field ref 0x3d6d at 0x10 in Lio/netty/util/internal/logging/Log4JLogger;.debug

D/houdini: [1481] Loading library(version: 3.2.1.43093 RELEASE)... successfully.

D/houdini: [1481] Open Native Library /data/app-lib/com.jni.example-1/libXYZ.so failed.

E/dalvikvm: dlopen("/data/app-lib/com.jni.example-1/libXYZ.so") failed: dlopen failed: "/data/app-lib/com.jni.example-1/libXYZ.so" has unexpected e_machine: 40

W/System.err: java.lang.UnsatisfiedLinkError: dlopen failed: "/data/app-lib/com.jni.example-1/libXYZ.so" has unexpected e_machine: 40

有谁知道如何解决这个问题?

2016-11-11

phlo

android jni arm x86,使用houdini(Android模拟器)在基于x86的AVD上运行ARM库相关推荐

  1. 在 Android 模拟器上运行 ARM 应用

    随着 Android 11 开发者预览版的发布,我们同时也推出了 Android 11 系统映像.新的系统映像在执行 ARM 二进制文件方面取得了显著的性能提升.此前,依赖 ARM 库且无法构建 x8 ...

  2. x86手机 android 市场份额,微软这次拼了 重磅手机曝光 基于X86打造 叫板苹果安卓...

    原标题:微软这次拼了 重磅手机曝光 基于X86打造 叫板苹果安卓 智能手机市场的火热,却唯独缺了微软这一位巨头的身影,近年来虽然微软一直有意打开自己进入智能手机市场的大门,但是却屡屡受挫,不过这并没有 ...

  3. Android JNI入门第五篇——Android.mk分析

    转载请标明出处: http://blog.csdn.net/michael1112/article/details/56671708 江东橘子的博客 Android.mk文件是在使用NDK编译C代码时 ...

  4. android 内存播放视频播放器,视频流媒体播放器EasyPlayer-RTSP安卓版在RK3399上运行APP崩溃问题...

    原标题:视频流媒体播放器EasyPlayer-RTSP安卓版在RK3399上运行APP崩溃问题 我们的流媒体服务器现在都已经支持H.265编码视频的播放,流媒体播放器EasyPlayer就是目前比较稳 ...

  5. Android Jni开发,报com.android.ide.common.process.ProcessException: Error configuring 错误解决方案...

    今天在练习JNI项目时,Android studio版本为:3.1.3,Gradle版本为4.4.由于Android studio 3.X弃用了 android.useDeprecatedNdk=tr ...

  6. android x86 最低内存,安卓模拟器低配置版哪个好 电脑内存再小也不怕卡

    现在安卓模拟器作为安卓文件在电脑上运行的辅助工具,使用率非常高,不过有一些用户表示自己的电脑配置比较低,使用一些较为热门的模拟器可能会比较卡,不好用,那么下面小编就为大家推荐一番. 安卓模拟器低配置版 ...

  7. Android Jni 调用

    Chap1:JNI完全手册... 3 Chap2:JNI-百度百科... 11 Chap 3:javah命令帮助信息... 16 Chap 4:用javah产生一个.h文件... 17 Chap5:j ...

  8. Android JNI --函数调用大全

    Chap1:JNI完全手册 最近在公司里做了一个手机的项目,需要JAVA程序在发送短信的时候和第三方的短信服务器连接.短信接口是用C++ 写的.琢磨了三天,大致搞懂了JNI的主体部分.先将心得整理,希 ...

  9. android wine教程_如何在 Android 上借助 Wine 来运行 Windows Apps

    Wine(一种 Linux 上的程序,不是你喝的葡萄酒)是在类 Unix 操作系统上运行 Windows 程序的一个自由开源的兼容层.创建于 1993 年,借助它你可以在 Linux 和 macOS ...

最新文章

  1. CentOS安装ElasticSearch及其问题解决
  2. 中国新十大军工企业名单及简称 十大军工集团 原十大军工集团
  3. Anacanda的安装
  4. web页面密码修改测试
  5. 蚂蚁金服11.11:支付宝和蚂蚁花呗的技术架构及实践
  6. Spring Cloud(七) GateWay 服务化和过滤器
  7. 帝国扩展变量是哪个php,帝国CMS后台系统设置里面的扩展变量是干什么的?
  8. 乐器演奏_深度强化学习代理演奏的蛇
  9. Visual Studio提示——DebuggerDisplay
  10. 记一次mysql千万订单汇总查询优化
  11. 【实践】小红书推荐中台实践
  12. eclipse中maven工程添加本地库至Maven Dependencies
  13. HDU 5387 Clock(分数类+模拟)
  14. UVA11005 Cheapest Base【数学】
  15. yb3防爆电机型号含义_YBX3防爆电机
  16. 【故障诊断分析】滚动轴承故障诊断系统含Matlab源码
  17. linux万能密码,Linux pam 后门纪录root用户密码以及设置万能密码登录root
  18. 【去水印】最简单的百度图片去水印
  19. 获取临时凭证AWS STS
  20. The number of method references in a .dex file cannot exceed 64K

热门文章

  1. 【OJ2726】集合问题,堆
  2. 【codevs3110】一把鼻涕一把泪的堆排序
  3. c语言 python java_C语言、C++、Java,Python之间的区别,哪个更有前景,哪个更难 ?...
  4. matlab时频分析工具箱安装_科研小班 | 加州大学伯克利分校 | 物理、电子工程:MATLAB信号和数据处理课题...
  5. 6-7 使用函数输出水仙花数_自学C++基础教程(输入输出2)
  6. [noip2017]列队 splay
  7. 2017.10.26 四校联测D1
  8. 2017.10.7 括号序列 思考记录
  9. 2017.3.21 树网的核 思考记录
  10. 命名参数_告别编码5分钟,命名2小时!史上最全的Java命名规范参考!