Android Studio 卡在安装 APK 时,adb 有时无法安装 APK,并且不知何故 Android Studio 干扰了 adb 的安装命令

Android Studio stuck at installing APK, the adb sometimes fails to install the APK, and somehow Android Studio interferes with adb's install command

原来我用的是libraries/tools的过时版本。解决了问题并愉快地继续前进。

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

Android工作室

当前的行为是 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% 的时间内成功安装(另一半失败并重新启动 phone连接):

$ 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

我可以毫不费力地执行其他操作,例如将文件推送到 phone 或卸载应用程序。到目前为止,问题仅与安装 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 工具的成功率?

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

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

检查你的App包名是否存在

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

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

  • 如果不存在:

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

pm install --user 0

Note: the command is pm install --user 0 without 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

尝试更新 adb 到最新版本

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

更详细的可以参考:

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

您还可以使用 Android 的工作室 UI: