自从我将 android studio 更新到 3.5 后,我一直无法在我的多个实体手机(Redmi Note 4 和 OnePlus6)上运行任何应用程序。该应用程序未安装在其中任何一个上。但它安装在相同版本(Android 24 和 Android 28)的模拟设备上,所以这不是代码问题。
此外,我尝试构建存储在 Git 上的应用程序的先前版本,但现在 Android Studio 无法构建显示“链接错误”的应用程序。虽然相同的代码版本在几个月前运行良好(在 android studio 更新之前)。这就是为什么我认为问题出在 Android Studio 而不是代码...
我尝试过的事情
禁用即时运行(在 Android Studio >=3.5.1 中不再是一个选项)
启用 USB 调试,使用“传输文件”模式而非“充电设备”模式的设备进行连接
关闭MIUI优化并重启
卸载应用并重新安装
构建 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 是这样。我在我的一个类(class)项目中尝试过,相同/相似的问题。
我的猜测是 Android Studio 更新和最近从“遗留”支持库迁移到 androidx 的问题
最佳答案
我是如何解决的:
在设置 -> 构建、执行和部署 -> 调试器中禁用“使用 libusb 后端”
抱歉 Android Studio 3.5 的诅咒
我是如何找到解决方案的:
我通过转到“帮助”->“压缩日志并在文件中显示”来检查 android studio 的日志。在打开的文件夹中,我看到了名为 adb.1000.log 的日志(因为 adb - android 调试桥,处理与设备的通信)。在我看到的最后几行中——“读取传输失败:LIBUSB_TRANSFER_CANCELLED”。我读了here关于libusb的选项
关于Android Studio 拒绝在我的手机上构建和安装任何应用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59325896/