Android模拟器Genymotion安装apk
⼀、下载apk
选择你需要安装的apk进⾏下载,下载完以后放在与同⼀⽬录下;
看我的
⼆、安装apk遇到的问题
开启Genymotion模拟器,然后cmd到你的platform-tools⽬录下,
使⽤以下命令进⾏安装。
adb install wxwork.apk
1
问题⼀:apk安装不成功
错误提⽰Installation failed with message INSTALL_FAILED_CPU_ABI_INCOMPATIBLE
或者直接把.apk包拖进Genymotion模拟器中,也是出现同样的错误
分析:这个问题我也纠结了很久,⽹上了⼀下,原来是Android⽤Genymotion 调试的时候,如果有.so的库的话,出现Failure [INSTALL_FAILED_NO_MATCHING_ABIS] 错误,并且始终安装不上。
这是因为系统⾥缺少了 Google Play 市场等各种⾕歌服务应⽤,其实是因为版权问题,从 2.0 版本开始 Genymotion 提供的虚拟设备都已经移除了 Google Apps 以及 ARM library support ,所以如果通过软件⾥下载回来的虚拟机,在运⾏⼀些必须依靠这些组件运⾏的 App 时就会出现错误或闪退现象。是因为模拟器是在x86的处理器上运⾏,⽽⼿机⼀般都是RAM架构的,所以得把模拟器刷成ARM的才⾏。
例如像地图或者浏览器什么的,⾥⾯会包含⼀些so动态库⽂件,这些都是在arm环境下运⾏的。⽽genymotion现在的发布版本没有带有Genymotion-ARM-Translation.zip,需要⼿动添加!
解决⽅法⼀:
1、下载 Genymotion-ARM-Translation_v1.1.zip;可以到,如果嫌速度太慢也得可以到;
2、.运⾏Genymotion,并start你配置好的virtual device
3、将下载好的Genymotion-ARM-Translation_v1.1.zip 拖拽到Genymotion模拟器⾥⾯
Genymotion-ARM-Translation_v1.1.zip 拖拽到Genymotion模拟器⾥⾯没有出现安装的情况
4、如果把Genymotion-ARM-Translation这个拖进去,没有出现安装,⽽是出现下图这种情况,⽂件被复制到了 Sdcard/loadcard下⾯的话
如果⽆法将zip包拖⼊Genymotion中,可下载,解压该⽂件,然后将Genymotion-Setting-ADB⾥⾯的SDK⽬录指向解压⽂件⾥⾯的android-sdk-tools⽬录,这样zip包就可以拖⼊运⾏中的模拟器(即放⼊模拟器的sdcard/Download⽂件夹)。
5、然后继续上述拖拽步骤3,出现如下提⽰,然后点击ok。
6、安装完后,重启你的virtual device以及Genymotion。
解决⽅法⼆
1、打开模拟器:
我们到设置,然后打开它,先设置⼀些属性
2、定位到安全:
我们到安全选择,然后点击它,设置安全属性。
3、定位到未知来源:
我们在这⾥允许安装来⾃未知来源的应⽤。我们在这⾥打勾。
4、最关键的来了:
我们下载⼀个Genymotion-ARM-Translation.zip的⽂件,把它拉进模拟器⾥。
5、等待安装:
这⾥是⼀个安装过程,等安装完成就弹出⼀个对话框,我们点击OK。
问题2:adb启动失败
当你重启genymotion进⾏安装apk时,提⽰端⼝号被占⽤,mmp,怎么尽是问题呢?内⼼真实⼀万个xxx在奔腾。
Unable to create Debug Bridge: Unable to start adb server: error: could not install *smartsocket* listener: cannot bind to 127.0.0.1:5037: 端⼝只能使⽤⼀次 (10048) could not read ok from ADB Serv
er
* failed to start daemon *
error: cannot connect to daemon
android模拟点击
1
2
3
4
好吧,既然问题来了,我们就要迎难⽽上⼲掉它。
⽅法⼀:查看端⼝被占⽤的进程,杀掉它
1、打开cmd窗⼝,进⼊所在的⽂件夹⽬录
如  cd C:\android\android-sdk\platform-tools
1
2、 netstat -aon|findstr “5037”
需要注意的是有时候会查询到很多的进程(我⼀般选第⼀个,不⾏的话全部试⼀次,暂时没有准确的⽅法,后续更新!!)
根据上图然后输⼊taskkill /pid 9892 /f (9892就是占⽤此端⼝的进程id)
⽅法⼆:更改的端⼝号
如果杀掉占⽤端⼝的进程,还是不能正常启动怎么办呢?
在环境变量⾥⾯添加⼀个变量,ANDROID_ADB_SERVER_PORT,我这⾥更改成5038,你随意。
⽅法三:
⽤⽅法⼀⾥⾯的⽅法查占⽤5037端⼝号的进程运⾏(win+R)—>输⼊”cmd” 打开命令⾏窗⼝输⼊:netstat -aon|findstr “5037”,我发现这个进程就是个进程,但是这个进程不是我们sdk⾥⾯的进程
1、我打开这个进程的位置,如图:
2、发现这个的进程是我安装Genymotion⾥⾯(D:\Program Files\Genymobile\Genymotion\tools
<)的adb,就是这个进程抢占了5037的端⼝。问题到了,于是乎我就把这个adb给删除掉。删除之后我发现模拟器都start不了了,那么问题来了,如图:
3、然后我看到了提⽰!提⽰⾥⾯说在我安装的Genymotion⾥⾯不到adb⼯具,问我是不是指定路径为SDK的路径,我就顺着它的提⽰,点击“YES”,就进⼊设置路径的界⾯了,选择ADB选项卡,第⼀个就是使⽤默认Genymotion⾥⾯的adb(之前我删除的那个adb),选第⼆
个,第⼆个就是使⽤SDK⾥⾯的,这好办,我把我SDK的路径那个给他就好了,如图:
4、配置好之后重启你的AndroidStudio和Genymotio就ok了
三、安装apk
查看模拟器是否与电脑成功连接
1、 cmd到你的platform-tools⽬录下,使⽤以下命令
adb devices
1
看到我画出来的就是我的模拟器,证明已经成功连接了。
2、接下来执⾏命令
adb install wxwork.apk
1
显⽰安装成功;

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。