如果你的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系统。
安卓模拟器有两种,一种是 X86(Intel) (雷电模拟器) ,一种是 ARM(MUMU模拟器)。
有些APK编译出来无法在 X86(Intel) (雷电模拟器)的模拟器运行,在 MUMU模拟器就能运行。
怎么解决?
如下:
【第一步】
编译你的 APP ,生成 APK。
然后找到你的 APK。
比如在 D:\delphi\Android64\Debug\Project9\bin 下找到 Project9.apk
【第二步】
这个Project9.apk用雷电模拟器是不能正常打开的,显示如下:
用MUMU 模拟器能正常打开。
然后把APK的后缀修改为 .zip 把Project9.apk 变成了 Project9.zip 然后解压,如下图
把里面的文件夹都删除了,就剩下最上面那一个。然后把文件夹压缩成 .zip。如下图
然后修改后缀成.apk
放入雷电模拟器就能打开了。。 但是MUMU模拟器估计就打不开了。
原文如下:
【第一步】
编译你的 APP ,生成 APK。
然后找到你的 APK(具体找法,自己研究,不要辜负你的脑袋的 IQ)。
【第二步】
用 压缩工具,打开 APK。如下图
【第三步】
打开 lib 目录
【第四步】
删除x86 目录。
【大功告成】。
确定,部分 X86 机器,可能会无响应。
这是因为,这些机器 没打 ARM 补丁。
【如果】打了 ARM 补丁,还是提示不支持(英文的)。请删除第一个目录:armeabi。
对于mips 的 CPU。如果他们也推出了 ARM 补丁。也可以这样做。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)