【问题标题】:Test android app on Virtual Box from Android studio在 Android Studio 的 Virtual Box 上测试 android 应用
【发布时间】:2015-01-31 13:47:34
【问题描述】:

我有一个非常具体的问题。我正在尝试与我的一个朋友一起创建一个用于教育目的的 Android 应用程序。问题是,我的处理器不支持 VT-x,这对于使用 AVD 来说是必不可少的,而且我的 Android 手机已经相当老旧,所以真的不需要太多。

因此,我想到的一个解决方案是使用 VirtualBox 创建一个 32 位 Android 虚拟机并在那里测试我的应用程序。

问题在于,与实际的 Android 设备和 AVD 不同,据我所知,VirtualBox Android VM 没有与 Android Studio 连接以测试每个新应用程序构建的明显方式。

所以,我所要求的正是:一种在我在 VirtualBox 上创建的 Android 虚拟机中立即测试我在 Android Studio 中编写的应用程序的方法,包括有效地允许我立即测试应用程序的任何变通方法在虚拟机上,而不是找到一种方法让 adb 与它一起工作。

【问题讨论】:

    标签: android virtualbox


    【解决方案1】:

    我知道我在这方面有点晚了,但我想通了。我使用的是 Windows 8,在 VirtualBox 上运行 Android x86 (4.4 r1)。

    1. 设置仅主机适配器,以便 VM 可以访问您的网络;您只能在 Android 图像关闭时进行设置。基本上只需进入您的设置,点击 Network,然后在标记为 Attached to 的下拉列表中选择 Host-Only Adapter。对于适配器类型,选择 PCnet-FAST III。如果还没有,请选中 已连接电缆 旁边的框。

    2. 设置一个 NAT 适配器,方法是选择不同的适配器选项卡并为 附加到选择 NAT .对于适配器类型,再次选择 PCnet-FAST III。如果还没有,请选中 已连接电缆 旁边的框。

    3. 启用开发者模式,方法是启动 Android 映像,然后转到 设置 > 关于手机/平板电脑 em> > 内部版本号。点击 Build Number 7 次。您应该会看到一个弹出窗口,告诉您需要单击多少次才能进入开发人员模式。 感谢以下 RMP PianoTuning 的回答

    4. 进入设置 > 关于手机/平板电脑 > 获取虚拟Android的IP地址 em>状态 > 然后向下滚动,直到找到您的本地 IP 地址记住这个号码,下一步你会用到它。

    5. 启动Android Studio并进入控制台;它应该是左下角的选项之一。输入 adb connect(步骤 4 中的 IP 地址)。深吸一口气,然后按 Enter。如果它说

    连接到(IP 地址)

    你准备好了!当您在 Android Studio 中运行应用程序时,您的虚拟 Android 应该显示为 Innotek GmbH VirtualBox,或类似的东西。选择那只小狗并享受您的新的、易于测试的模拟器。它甚至兼容蓝牙! (但那是一个完整的'另一个故事......谷歌它)

    【讨论】:

    • 我做了一切,但最后它说“无法连接到 192.168.0.104”。为什么会这样?
    • 您是否仔细检查了您的虚拟 android 的 IP 地址?重新启动时它可能已重置。
    • 这里发生了一些非常奇怪的事情。在步骤 2 中记下我的 android 的 IP 地址后,我将我的网络适配器设置为 附加到 作为 NAT,当我重新打开它时,它会完全获得一个 IP 地址与上一个不同。两个网络适配器都在那里,我所做的一切都如上述答案中所述。现在我不知道如何使该 IP 地址成为静态地址。
    • 对于第 3 步,不是转发端口 192.168.1.XXX,而是转发一个星号 (*)。这应该将所有端口转发到另一端的相同 IP 地址。这样您就可以简单地检查哪个 ip android 已打开并连接到该 ip 而不是设置的 ip 地址。
    • 嗨。我尝试了您的所有步骤,并且能够通过 adb 连接。但是我无法安装我的测试应用程序。在 Android Monitor 中我得到:Dropping log because Clearcut could not write to store. SQLiteCantOpenDatabaseException: unable to open database file (code 14): , while compiling: PRAGMA journal_mode 在 Grade Build 窗口中我得到 AAPT process not ready to receive commands
    【解决方案2】:

    现在,虚拟盒无法满足您的需求。

    这里有一些替代方案,

    Genymotion http://www.genymotion.com/ 是一个易于使用的安卓模拟器,我建议你研究一下。基于virtualbox,可以轻松集成到android studio。如果不是 VT-x ,则需要 AMD-V proc。如果处理器不支持这些,模拟器仍然可以工作,但您的模拟设备将只能使用一个 CPU。

    另一个选项是 adb over wifi,它可以让您在不执行保管箱步骤 http://forum.xda-developers.com/showthread.php?t=1685736 的情况下使用手机。不过,要使其正常工作,您将需要 root。

    【讨论】:

      【解决方案3】:

      我能够按照 OMiKeY 的步骤让我的应用在 VirtualBox 中运行, 他遗漏的部分:

      在您的 Android 模拟设备中,您必须启用开发者模式。 转到“设置”-> 关于手机/平板电脑-> 内部版本号。 单击内部版本号 7 次。 对我来说,弹出窗口告诉我需要点击多少次才能进入开发者模式。

      之后我重新运行 adb connect XXX.XXX.XXX.XXX 命令

      【讨论】:

      • 您是否还必须激活允许未知来源程序的设置?
      • 不,只是启用开发者模式。我没有进入开发人员选项菜单。一旦我得到它的工作,我在第二台计算机上安装 VirtualBox,它的工作原理是一样的。
      【解决方案4】:

      这就是它对我的作用。

      1. 我只是将我的安卓手机通过 USB 连接到我的主机 (Windows 10)。

      2. 然后确保从来宾操作系统中找到 USB 电话(VirtualBox 6.0 中的 ubuntu 桌面 18.04)。 (VirtualbBox 应用程序:设备 > USB > 检查与我的手机对应的 USB)。一旦被 ubuntu 识别,桌面屏幕上就会出现一个电话图标。

      3. 接下来,我启动android studio (v3.3.2);完成后,从终端窗口(Android 工作室:查看 > 工具窗口 > 终端)输入:adb devices,这将列出连接的设备并且我的手机在列表中。

      4. 现在我运行该应用程序进行测试(监控我的手机并确认是否有提示)......并且该应用程序显示在我的手机上。希望这对其他人有帮助。

      【讨论】:

        【解决方案5】:

        如果您运行的是 Windows,请在防火墙中打开特定端口。在您的 Android 安装设置中的 VirtualBox 中设置 - >网络适配器 2 选项卡 - 端口转发并使用协议(TCP) - 主机 IP(您的 IP) - 主机端口(在我的情况下为 5555) - 访客 IP(相同的步骤 4 - 检查你的 IP ) - 访客端口(我也放了 5555)。行!现在我可以在 VM 中运行我的应用了。

        AppData\Local\Android\Sdk\platform-tools>adb 连接 192.168.0.101 连接到 192.168.0.101:5555

        运行设备: innotek GmbH VirtualBox

        :-)

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-12-23
          • 1970-01-01
          • 2021-12-28
          • 1970-01-01
          相关资源
          最近更新 更多