背景: 我最近升级到AMD处理器,发现Android设备模拟器抱怨没有硬件加速。 (这是另一个问题的问题)。我的旧英特尔计算机运行良好,因此我决定在旧的英特尔PC(emu-pc)上运行模拟器,并使用新的AMD计算机(dev-pc)进行编码。
问题: 我无法直接让仿真器在emu-pc上公开其端口以通过dev-pc上的adb连接(同样是另一个问题),所以我安装了Windows 10 OpenSSH服务器({{3} }),并从我的dev-pc连接到它,转发适当的ADB端口:
ssh {you}@<{remote ip} -L 5554:localhost:5554 -L 5555:localhost:5555
然后我尝试通过adb连接到远程仿真器:
adb connect localhost
我遇到了
$ ./adb devices
List of devices attached
localhost:5555 unauthorized
我已经尝试了几篇文章,指出您应该禁用并重新启用USB调试或撤消所有USB调试授权,或者使用AVD Manager中的“擦除数据”选项。这些都不起作用。我还尝试弄乱了/data/misc/adb/adbkeys
下仿真器上的adbkeys,但我被拒绝尝试对该文件执行任何操作。 (我也无法通过ls
来adb shell
)
有什么想法吗?
答案 0 :(得分:1)
我发现了一些对我有用的东西。我能够通过端口5554 telnet到emu-pc,尝试在Android控制台上进行身份验证。登录消息说:
Android Console: type 'auth <auth_token>' to authenticate
Android Console: you can find your <auth_token> in
'C:\Users\exile57\.emulator_console_auth_token'
我找到了该文件并能够登录。这使我认为模拟器认为连接来自emu-pc,而我使用的密钥是在dev-pc上生成的。我在C:\Users\[your user]\.android
的emu-pc上找到了adbkey
和adbkey.pub
的键。我将它们复制到dev-pc,杀死了adb服务器,断开了所有设备的连接,然后尝试重新连接:
$ ./adb disconnect
./adb kill-server
./adb connect localhost
过了一会儿,我能够通过adb连接并驱动该设备:
$ ./adb devices
List of devices attached
localhost:5555 device
注意我不确定这是故事的全部,因为在测试此答案时,我删除了dev-pc的adbkey和adbkey,pub并且仍然能够重新连接,所以似乎有点奇怪。它对我有用,但是请注意,我不确定该机制。
答案 1 :(得分:0)
在Android Studio中,“运行”菜单>“运行”显示所连接设备的“离线...”。
以下是解决该问题的步骤:
(首先阅读下面的注释)删除〜/ .android / adbkey(或者重命名为〜/ .android / adbkey2,如果出于某种原因希望将其恢复,则更好) 注意:在执行以下所有步骤后,我碰巧执行了此步骤,但是并不能解决问题,因此不确定是否需要执行此步骤。
运行locate platform-tools / adb 注意:请使用以下命令中来自此处的路径
杀死adb服务器: 须藤〜/ Android / Sdk / platform-tools / adb kill-server
您将在设备上弹出“允许接受..”消息。接受。这很重要,可以解决问题。
启动adb服务器: sudo〜/ Android / Sdk / platform-tools / adb启动服务器
在Android Studio中,执行“运行”菜单>“再次运行” 它将显示类似Samsung ...(您的手机制造商名称)的信息。 这次也可以在设备上正确无误地安装apk。
希望有帮助。