如卜誉果你的APK是只编译在ARM架构上的话,APK里面的.so库文件里(如果有),它是一些ARM指令,这肯定不能直接在Intel架构上运行。
解决办法:
用NDK build android x86的.so库(假设你有源代码)。
1. 创建Application.mk文件,在文件中添加如下内容:(让它生成x86下的库文件)
APP_ABI := armeabi armeabi-v7a x86
陪凳2. 如果不想使用Application.mk文件,则在ndk-build 参数中添加APP_ABI=“armeabi armeabi-v7a x86”
安装APK时会根据系统cpu架构,芦弊旅将对应的.so库文件复制到系统lib目录。
当然还有一种装虚拟机的办法,让APK在虚拟机里面跑,但是这好像不是安装到android系统。
1、首先在X86机器下哪卜可以构配拆建一个原生的arm文件系统。2、其次通过qemu-aarch64-static 及chroot,可以在X86主机上对arm文件系统进行挂载。
3、最后通过apt命令工具可以对arm文件系统安装相应的软件包,可以培缓枣添加帐号,定制主机名等。
在 http://blog.csdn.net/roland_sun/article/details/49735601 中看到对于android x86如何支持arm架构app的说明,但没有详细 *** 作步骤,我这里经过摸索实 *** 了一遍。
要注意的是安装android系统时(我参考的 https://www.cnblogs.com/wynn0123/p/6288344.html ),要在下面这一步一定要选择Yes,否则没有权限对系统进行修改(可能安装后用root remount也行,但我没实验过)。
由于我没有翻墙,所以一些说翻墙后直接开启选项的方式我不能用,于是就手动处理。
安装一个我的世界游戏凳棚州试试,和橘果然行了。
20171201:更新
在继续研究的过程中对于各版本的android-x86都进行了测试,其中4.4及5.1的都能正常安装houdini,但是启动游戏时都有各种问题导致崩溃。6.0及7.0的x86和x64版本均正常。
在各种尝试时,写了个快速脚本来处理安装houdini。这里拿安装android-x86-7.1-rc2的houdini举例:
在某目录建立bat文件,填入以下内容并执行
在提示“请修改enable_nativebridge后按任意键将文件写回”时,用文本编辑工具打开pull回来的 enable_nativebridge 文件,并枣蔽且将里面的 goo.gl 的链接(用短链接还原网站 http://bitly.co/ ,已FQ可跳过)解析出来并且改成真实链接如下,最好顺便把所有的 log -pe -thoudini 和 log -pi -thoudini 改成 echo 方便后面shell执行时看到结果 :
然后回到批处理按任意键写回,再按任意键执行enable_nativebridge。
然后去android里把应用兼容性里的支持arm打开。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)