【问题标题】:Android Studio stuck at installing APK, the adb sometimes fails to install the APK, and somehow Android Studio interferes with adb's install commandAndroid Studio 卡在安装 APK,adb 有时无法安装 APK,不知为何 Android Studio 干扰了 adb 的 install 命令
【发布时间】:2020-08-20 21:28:52
【问题描述】:

Some time ago I had trouble with my Huawei P30 and ADB/Android Studio installing APKs. 原来我使用的是过时版本的库/工具。解决了问题,然后愉快地继续前进。

现在我的手机已升级到 Android 10,我面临的问题与之前的问题非常相似,但我似乎无法以相同的方式修复它(通过更新库)。我尝试安装每个工具的多个版本,全新安装 Android Studio 和 Android 相关工具,但似乎没有任何帮助。

Android Studio

当前的行为是 Android Studio 生成 APK 后会无限期地停留在“安装”步骤。在一小部分测试中它失败了。

亚行

我也尝试使用 adb 从命令行安装 APK,但结果好坏参半。

$ adb version
Android Debug Bridge version 1.0.41
Version 30.0.4-6686687

当 Android Studio 运行时,安装应用程序要么最终失败,要么像在 Android Studio 中一样无限期挂起:

$ cd .../platform-tools

$ adb start-server
* daemon not running; starting now at tcp:5037
* daemon started successfully

$ adb install C:\...\example.apk
Performing Streamed Install
adb: failed to install C:\...\example.apk

$ adb install C:\...\example.apk
Performing Streamed Install

^^^ Hangs there forever

现在,事情变得有趣了,如果我关闭 Android Studio,安装 APK 会在大约 50% 的情况下成功安装(另一半会失败并重新启动电话连接):

$ cd .../platform-tools

$ adb kill-server

$ adb start-server
* daemon not running; starting now at tcp:5037
* daemon started successfully

$ adb install C:\...\example.apk
Performing Streamed Install
adb: failed to install C:\...\example.apk

$ adb kill-server

$ adb start-server
* daemon not running; starting now at tcp:5037
* daemon started successfully

$ adb install C:\...\example.apk
Performing Streamed Install
Success

$ adb kill-server

$ adb install C:\...\example.apk
* daemon not running; starting now at tcp:5037
* daemon started successfully
Performing Streamed Install
Success

$ adb kill-server

$ adb install C:\...\example.apk
* daemon not running; starting now at tcp:5037
* daemon started successfully
Perform
adb: failed to install C:\...\example.apk

我可以轻松执行其他操作,例如将文件推送到手机或卸载应用程序。到目前为止,该问题仅与安装 APK 有关:

$ adb shell pm uninstall com.example
Success

$ adb push C:\...\app-debug.apk /sdcard/APKs
C:\Dropbox...\app-debug.apk: 1 file pushed, 0 skipped. 15.2 MB/s (31131771 bytes in 1.956s)

为什么像抛硬币一样安装应用失败或成功?这可能是驱动程序问题吗? Android Studio 怎么会干扰单独运行 adb 工具的成功率?

【问题讨论】:

  • 你能找到解决办法吗?
  • @Prethia 还没有,不幸的是。
  • 就我而言,我在 jenkins 构建中等待模拟器的动画完成事件,但显然这还不够。我可以在使用 15 分钟的睡眠语句时始终如一地安装应用程序,这至少可以说是可怕的,我会发布一个答案来帮助解决这个问题

标签: android android-studio adb android-install-apk


【解决方案1】:

尝试使用 ./gradlew installDebug 安装您的应用程序。它可能会给出失败的原因

您还可以使用 Android 的 Studio UI:

【讨论】:

  • 这是一个不错的解决方案! =) 它不仅比手动运行adb 命令更可靠,而且从Android Studio 的Gradle UI 运行也非常方便。我没有收到任何错误,但是我终于可以轻松安装该应用程序了。谢谢
【解决方案2】:

如果设备上存在该软件包,您可以先卸载它:

检查你的应用的包名是否存在

$ adb shell dumpsys package com.package.name
  • 如果存在:
$ adb shell pm uninstall --user 0 com.package.name

如果卸载失败,那么应用程序可能是设备管理员或设备所有者。

  • 如果不存在:

尝试更改 Android Studio 的安装标志: 运行 > 编辑配置 > 安装标志

pm install --user 0

注意:命令是pm install --user 0,没有adb shell

更新:

假设该应用从未安装在设备上。

  1. 首次安装
adb install myapp.apk

命令将成功,应用程序将被安装。

  1. 第二次安装
adb install myapp.apk

该命令将失败,因为您已经安装了一个包com.package.name

第二次安装,请先卸载:

adb uninstall com.package.name
adb install myapp.apk

或强制重新安装:

adb install -r myapp.apk

【讨论】:

  • 卸载命令真好用,不知道。不幸的是,该应用在卸载或不存在后仍然无法安装。
  • 感谢您的解释,但即使应用程序已正确卸载,即使强制安装,安装步骤也会随机失败。
  • 我已经更新了我的问题,使其更加专注于重要问题。
【解决方案3】:

尝试禁用 USB 调试模式,然后在手机上重新启用它。有时它会被窃听并表现得好像它被禁用了,当它被设置为启用时

【讨论】:

  • 感谢您的建议,但对结果没有任何影响。
【解决方案4】:

尝试将adb 更新到最新版本

可以修复:adb install xxx.apk 卡在执行流式安装`

更多详情可以参考:android - Error: ADB exited with exit code 1 Performing Streamed Install - Stack Overflow

【讨论】:

  • 我确实尝试过使用不同版本的adb,如that resulted to be an issue in the past,但这并不能解决问题。
  • @cavpollo 请尝试另一台PC并直接重新安装adb(不使用android studio),检查是否工作
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-11-17
  • 2014-12-21
  • 1970-01-01
  • 1970-01-01
  • 2017-03-06
  • 1970-01-01
  • 2017-02-25
相关资源
最近更新 更多