Android模拟器“允许USB调试”对话框在显示后立即关闭

23
我正在尝试在带有PlayServices的Pixel模拟设备中使用Android R进行调试,但是“允许USB调试”对话框一显示就立即关闭,因此我无法单击“允许”以使AS连接到AVD。我进入Android开发者选项将USB调试开关关闭并重新打开,但是对话框再次一显示就立即关闭。我尝试杀死/启动ADB并卸载所有AS/用户配置等,然后重新安装,但结果没有解决。有人知道原因吗?

你是在使用真实设备还是模拟器? - cdevansh
AS模拟器,最新版。 - Maurício Lima
9个回答

9

看起来这个问题与你的模拟器API版本有关,在进行了一些测试后,我发现Pixel 4 API 30会出现你遇到的问题,而其他版本则不会。

Versions

另一个奇怪的事情是,当你开始一个新会话时,它会再次询问你是否允许,尽管我已经点击了“始终允许此设备”按钮。


7
Pixel 3a API 30也存在相同的问题。 - Jaineel Mamtora
1
Pixel 3 API 30 也有同样的问题。 - Viktor Brešan
我坚持使用Pixel 2。 - Ng Lok Chun

8

清除数据后,该选项将弹出并保持显示。勾选“始终允许在此设备上进行调试”框,然后你就可以开始了。


5

尝试删除以下位置中的文件adbkeyadbkey.pub:

  • ~/.android/adbkey/ 在Linux上
  • %UserProfile%\.android 在Windows上
  • %ANDROID_SDK_HOME%\.android 如果设置了,则在Windows上
adb kill-server
adb devices

清空模拟器数据后重启。然后授予“USB调试”权限,并将其显示为可调试设备。

这个问题只会出现在google_apis_playstore设备上,参见这里。我认为的原因是,如果模拟器上已经存在其他密钥,则adb只会复制key文件。因此,删除模拟器上的文件可能也能解决该问题。


在我的情况下没有帮助。对话框仍然在我有机会单击它之前消失了。 - Viktor Brešan
@ViktorBrešan,你更改了ANDROID_SDK_HOMEANDROID_PREFS_ROOT 变量吗?确保在任何可能存在的.android目录中删除任何旧的密钥。如果是这样,就不应该出现对话框,密钥将自动复制到您的设备上,因此您应该能够进行调试而无需确认 :) - User Rebo
1
这不是文件夹的问题,我稍微“修正”了你的答案。 - Viktor Brešan

3

1
不幸的是,什么都没用,甚至卸载Android Studio也不行,唯一的办法就是从AVD列表中选择一个非PlayServices。 - Maurício Lima
我和@MaurícioLima有相同的经历。另外,如果你无法连接设备,你该如何将密钥放在设备上呢? - mx1up

2
这个问题发生在API级别为30的像素模拟器上,选择31级别将解决此问题。

1
我遇到了同样的问题。我试图在时间内点击“允许”,但在我的电脑上它太快了。然而,我注意到在冷启动之后,这个弹出窗口会弹出并且不会立即隐藏(可能是由于加载滞后),所以我就通过这种方式成功地点击了它。
如果有人仍然遇到这个问题,并且目标是上传一些文件或apk,则最好将其上传到Google驱动器中,并通过模拟器中的链接进行下载。

2
实际上这是我成功运行apk的唯一方法,即复制并安装它,AVD无法连接到Android Studio,在300秒后会给出一条消息,表示等待但无法连接。 - Maurício Lima

1

我通过以下步骤解决了这个问题:

  1. 清除模拟器数据
  2. 重新启动模拟器

上述步骤导致没有任何对话框出现,很奇怪,然后我查看了Android Studio,发现模拟器已经连接。


跟我情况一样,在擦除后它已经被授权/连接了。 - QuantumBlack

0
经过一些实验,我发现x86 API显示了这个错误,所以简单地切换到x86_64 API解决了问题:

enter image description here


0
在我遇到的情况下,是因为我启用了一款辅助功能应用程序。尝试了各种方法(开/关开发者模式、USB调试等等),重启了设备等等之后,我禁用了该辅助服务,然后,“允许USB调试”恢复正常了!

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接