引言
今天测试机没带回去~~~然后在android studio上用自带的模拟器调试程序,碰到了一些问题,其实有些问题以前也碰到过,只是没有做个总结,过一段时间就忘了,那先把这次碰到的问题先记录下来,之后再慢慢更新
问题1.在run apk的时候,碰到install_failed_no_matching_abis错误
在解答这个问题之前需要了解CPU架构,android是基于linux的操作系统,可支持的CPU架构有
armeabi 第5代 ARM v5TE,使用软件浮点运算,兼容所有ARM设备,通用性强,速度慢
armeabi-v7a 第7代 ARM v7,使用硬件浮点运算,具有高级扩展功能
arm64-v8a 第8代,64位,包含AArch32、AArch64两个执行状态对应32、64bit
x86 intel 32位,一般用于平板
x86_64 intel 64位,一般用于平板
mips 少接触
mips64 少接触
最常见的无非是x86或者x86_64或者arm了。
查看所连接设备的cpu信息
进入terminal
adb shell
cd /proc && cat cpuinfo
图中所示,有4个,应该是4核心的意思,GenuineIntel意味着是intel家的x86或者x86_64,好吧直接名字就是generic_x86_64~~~
回到本问题,报了该错误,是因为CPU架构不匹配,我的虚拟机选择了x86,x86自从用了HAXM加速,支持了模拟器,速度是arm模拟器的10倍左右,很快。但是我的lib里是有引入arm的so文件的
好吧~两种办法,一种换个arm的模拟器
由于速度实在太慢,而且那个arm的so文件夹都是些高德地图相关的东西,就干脆在gradle里面把其注释掉,不引用就ok了。
问题2.模拟器如何访问本地服务器
查看连接android机的ip
adb shell
ifconfig
或者
getprop获取系统信息,找到[net.gprs.local-ip]: [10.0.2.15]就是模拟器的ip
模拟器不能直接通过127.0.0.1来访问电脑上的本地服务器,需要知道电脑相对于android设备的映射后的地址。
在Android中,将我们本地电脑的地址映射为10.0.2.2,因此,只需要将原先的localhost或者127.0.0.1换成10.0.2.2,就可以在模拟器上访问本地计算机上的Web资源了。
—————分割线——————