物理设备无法在 Android Studio 中工作:多个 RSA 密钥指纹,但只有一个 adbkey.pub

And*_*oom 2 android adb rsa-key-fingerprint android-studio

我使用 Pixel 2xl 和 MacBook Pro 进行开发。我有一个问题几个月来一直困扰着我。当我将手机连接到电脑时,我会看到经典的弹出窗口,询问“允许 USB 调试?计算机的 RSA 密钥指纹是:xx:xx:xx:xx:xx:.....xx:xx”,然后出现框与“始终允许来自这台计算机”和两个按钮“取消”和“允许”。问题是我得到了两个不同的密钥指纹,其中一个不适用于 android studio,我必须单击“取消”并打开和关闭“USB 调试”开关,直到我最终获得正确的密钥。我尝试按照如何在 Mac 上完全卸载 Android Studio?卸载 Android Studio 和所有相关文件夹。 当电脑上没有安装任何东西时,我仍然在消息中收到流氓密钥指纹。我尝试删除唯一的 adbkey.pub 并且只更改了好的密钥指纹。我尝试在设备上“撤销 USB 调试授权”,但没有任何效果。我运行“ps aux | grep adb”,当我仍然得到恶意密钥指纹时,没有 adb 正在运行。我的电脑上似乎也没有其他 adbkey 文件。

这个流氓钥匙指纹从哪里来?如何摆脱它?这真的让我的成长日子变得非常痛苦。谢谢

And*_*oom 6

我想我终于找到了解决方案:

重要提示:要诊断问题,必须从设备上的开发人员选项中“撤销 USB 调试授权”,并且切勿选中“始终允许来自此计算机”。如果您选择该选项,则不会出现弹出窗口,并且您可能会发现自己已连接,但 RSA 密钥错误。在 android studio 中,您将看到您的设备已连接在 USB 列表中,但不是作为 Android 设备。这看起来像是连接(电缆等)的问题,但实际上连接机制正在工作,只是 Android Studio 由于指纹错误而无法使用它。

恶意 RSA 密钥指纹是通过检查触发chrome://inspectDiscover USB devices。此选项允许您在没有 adb 的情况下查看 Android 设备,因此它可能会使用自己的证书来模仿 adb 的行为。这是 Chrome 开发者犯下的一个大错误,因为它会干扰 Android Studio 的行为!它不会将其使用的证书存储在~/.Androida 中的文件夹中adbkey.pub,因此很难发现问题。我使用 chrome 检查使用 facebook 查看我的应用程序的数据库stetho。我总是打开一个选项卡,这让我最后两个月的编码变得像地狱一样!希望这对某人有帮助。