zoukankan      html  css  js  c++  java
  • Android模拟器Genymotion安装apk

    一、下载apk

    选择你需要安装的apk进行下载,下载完以后放在与adb.exe同一目录下;

    看我的

    这里写图片描述

    二、安装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-no-java.zip],解压该文件,然后将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 Server
    * failed to start daemon *
    error: cannot connect to daemon
    • 1
    • 2
    • 3
    • 4

    好吧,既然问题来了,我们就要迎难而上干掉它。

    方法一:查看端口被占用的进程,杀掉它

    1、打开cmd窗口,进入adb.exe所在的文件夹目录

    如  cd C:androidandroid-sdkplatform-tools
    • 1

    2、 netstat -aon|findstr “5037”

    这里写图片描述

    需要注意的是 有时候会查询到很多的进程(我一般选第一个,不行的话全部试一次,暂时没有准确的方法,后续更新!!)

    根据上图然后输入 taskkill /pid 9892 /f (9892就是占用此端口的进程id)

    方法二:更改adb.exe的端口号

    如果杀掉占用端口的进程,还是不能正常启动怎么办呢? 
    在环境变量里面添加一个变量,ANDROID_ADB_SERVER_PORT,我这里更改成5038,你随意。

    这里写图片描述

    方法三:

    用方法一里面的方法查找占用5037端口号的进程运行(win+R)—>输入”cmd” 打开命令行窗口输入:netstat -aon|findstr “5037”,我发现这个进程就是个adb.exe进程,但是这个进程不是我们sdk里面的进程 
    1、我打开这个进程的位置,如图:

    这里写图片描述

    2、发现这个adb.exe的进程是我安装Genymotion里面(D:Program FilesGenymobileGenymotion ools 
    adb.exe)的adb,就是这个进程抢占了5037的端口。问题找到了,于是乎我就把这个adb给删除掉。删除之后我发现模拟器都start不了了,那么问题来了,如图:

    这里写图片描述

    3、然后我看到了提示!提示里面说在我安装的Genymotion里面找不到adb工具,问我是不是指定路径为SDK的路径,我就顺着它的提示,点击“YES”,就进入设置路径的界面了,选择ADB选项卡,第一个就是使用默认Genymotion里面的adb(之前我删除的那个adb),选第二个,第二个就是使用SDK里面的adb.exe,这好办,我把我SDK的路径那个给他就好了,如图:

    这里写图片描述

    4、配置好之后重启你的AndroidStudio和Genymotio就ok了

    三、安装apk

    查看模拟器是否与电脑成功连接

    1、 cmd到你的platform-tools目录下,使用以下命令

    adb devices
    • 1

    这里写图片描述

    看到我画出来的就是我的模拟器,证明已经成功连接了。

    2、接下来执行命令

    adb install wxwork.apk
    • 1

    显示安装成功;

    这里写图片描述

  • 相关阅读:
    Unique Binary Search Trees 解答
    Unique Paths II 解答
    Unique Paths 解答
    Maximum Subarray 解答
    Climbing Stairs 解答
    House Robber II 解答
    House Robber 解答
    Valid Palindrome 解答
    Container With Most Water 解答
    Remove Duplicates from Sorted List II 解答
  • 原文地址:https://www.cnblogs.com/saryli/p/9244051.html
Copyright © 2011-2022 走看看