1

自从我将 android studio 更新到 3.5 以来,我一直无法在我的多部物理手机(Redmi Note 4 和 OnePlus6)上运行任何应用程序。该应用程序未安装在其中任何一个上。但它安装在相同版本(Android 24 和 Android 28)的模拟设备上,因此代码不存在问题。

此外,我尝试构建存储在 Git 上的应用程序的早期版本,现在 Android Studio 没有构建显示的应用程序 - “链接错误”。虽然几个月前相同的代码版本运行良好(在 android studio 更新之前)。这就是为什么我认为问题出在 Android Studio 而不是代码的原因......

我尝试过的事情

  1. 禁用即时运行(在 Android Studio >=3.5.1 中不再是一个选项)

  2. 启用 USB 调试,使用“传输文件”模式而不是“充电设备”模式使用设备连接

  3. 关闭 MIUI 优化并重启

  4. 卸载App并重新安装

  5. 构建 apk,将 apk 传输到设备,然后尝试安装(这适用于 OnePlus 6,但不适用于 Redmi Note 4)

我尝试过的应用程序以 Sdk >=27 为目标,并使用 androidx。但是,我尝试返回应用程序的先前版本,该版本没有使用 androidx(并使用旧支持库),但仍然出现相同的错误。

我的系统是 Ubuntu 18.04,当前的 Android studio 版本是 3.5.3

我得到的错误包括:

  • INSTALL_FAILED_USER_RESTRICTED
  • 未找到设备

更新: - 刚刚尝试在 OnePlus6 上安装,也没有安装在那里。早些时候我只测试了 Redmi Note 4。 - 尝试卸载并重新安装应用程序,构建 apk 并在手机上传输,然后手动安装。- 这发生在项目中,至少对于 Redmi Note 4 而言。我在我的一个课程项目中尝试了这个,相同/相似的问题。

我的猜测是 Android Studio 更新和最近从“旧版”支持库迁移到 androidx 的问题

4

2 回答 2

1

我是如何解决的:

在设置 -> 构建、执行和部署 -> 调试器中禁用“使用 libusb 后端”

我们需要禁用的设置页面的屏幕截图

对不起 Android Studio 3.5 的诅咒

我如何找到解决方案:

我通过转到 Help -> Compress Logs and Show in Files 检查了 android studio 的日志。在打开的文件夹中,我看到了名为 adb.1000.log 的日志(因为 adb - android debug bridge,处理与设备的通信)。在我看到的最后几行中 - “读取传输失败:LIBUSB_TRANSFER_CANCELLED”。我在这里读到了关于 libusb 的选项

于 2019-12-13T18:11:25.140 回答
0

您是否尝试在 /Build/Clean Project 下清理/重建...,之后 /Build/Rebuild Project 以及清理和重建后,您可以在 /File/Invalidate 缓存下尝试

于 2019-12-14T11:58:10.633 回答