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

    显示安装成功;

    这里写图片描述

  • 相关阅读:
    电感(29)之铁氧体磁珠工作原理透彻详解
    电阻(7)之零欧姆电阻
    高速数字逻辑电平(8)之LVDS差分信号深度详解
    每天进步一点点------Error: Can't place pins assigned to pin location Pin_K22 (IOPAD_X41_Y19_N14)
    每天进步一点点------入门视频采集与处理(视频分辨率介绍)
    每天进步一点点------入门视频采集与处理(显示YUV数据)
    每天进步一点点------YUV格式详细解释
    每天进步一点点------入门视频采集与处理(BT656简介)
    每天进步一点点------FPGA 静态时序分析模型——reg2reg
    每天进步一点点------SysTimer
  • 原文地址:https://www.cnblogs.com/saryli/p/9244051.html
Copyright © 2011-2022 走看看