在"adb reverse"上两次"错误:关闭"

Kon*_*zik 48 android forwarding adb

我试图通过ADB反向转发端口,但它只是返回神秘的错误error: closed.正常转发工作.会话片段:

$ adb forward tcp:59778 tcp:59778
$ adb forward --list
015d2109ce0c1a0f tcp:59778 tcp:59778
$ adb forward --remove-all
$ adb forward --list
$ adb reverse --list
error: closed
error: closed
$ adb reverse tcp:59778 tcp:59778
error: closed
error: closed
Run Code Online (Sandbox Code Playgroud)

我通过USB连接到Boot-Camp上的Windows 7 Pro x64上的非root用户Nexus 7 2012 Android 4.4.4.

Ale*_* P. 84

adb reverse 在Android 5.0中引入

  • 那么使用Android 4.2时的解决方案是什么? (17认同)
  • 这是解决方案:http://facebook.github.io/react-native/docs/running-on-device-android.html#configure-device-to-connect-to-the-dev-server-via-wi-科幻 (5认同)
  • @AugustinRiedinger你的链接不是很清楚如何在较低的API上替换`adb reverse`.通过在设备上手动设置服务器,我可以开发反应原生,但现在我收到一个错误,其他人建议"adb reverse"失败,所以我不知道怎么去那里.设置设备上的IP是否足以不需要其他替换? (5认同)

Jes*_*era 33

由于adb reverseAndroid版本低于5.0不支持,因此您需要使用其他方法,例如通过Wi-Fi连接.如果您使用的是React Native,Facebook已添加官方文档以通过Wi-Fi连接到开发服务器.引用MacOS的说明,但它们也适用于Linux和Windows:

方法2:通过Wi-Fi连接

您还可以通过Wi-Fi连接到开发服务器.您首先需要使用USB电缆在设备上安装应用程序,但一旦完成,您可以按照这些说明进行无线调试.在继续之前,您需要开发机器的当前IP地址.

您可以在系统偏好设置→网络中找到IP地址.

确保您的笔记本电脑和手机位于同一Wi-Fi网络上.在您的设备上打开您的React Native应用程序.你会看到一个错误的红色屏幕.还行吧.以下步骤将解决这个问题.打开应用内开发者菜单.转到开发设置→调试服务器主机以获取设备.键入计算机的IP地址和本地开发服务器的端口(例如10.0.1.1:8081).返回Developer菜单并选择Reload JS.

  • 还有一点需要注意:如果你像我一样在android 4设备上开发(例如智能电视),它不支持摇动,你仍然可以通过运行:"adb shell input keyevent KEYCODE_MENU"来触发设备上的应用内开发人员菜单. (5认同)

小智 11

请仔细遵循这些步骤.

注意:所有命令只需要在项目内运行.

  1. 首先运行此命令:

    npm react-native start
    
    Run Code Online (Sandbox Code Playgroud)
  2. 在同一个项目中打开另一个窗口并运行:

    curl "http://localhost:8081/index.android.bundle?platform=android" -o "android/app/src/main/assets/index.android.bundle"
    
    Run Code Online (Sandbox Code Playgroud)
  3. 这将index.android.bundle在assets文件夹中创建

  4. 跑:

    npm react-native run-android
    
    Run Code Online (Sandbox Code Playgroud)

现在你可以在build文件夹中获得apk,它可以正常工作.

  • 我认为它应该是'react-native start'和'react-native run-android'而不是'npm'.npm用于包管理...... (4认同)

sli*_*eed 5

adb reverse需要Android 5.0+.对于之前的设备,您需要使用类似的解决方法.

如果您的Android设备上安装了busybox(大多数Genymotion图像都可以),您可以adb reverse使用此咒语进行模拟:

adb shell busybox nc -ll -p {guest port} -e busybox nc {host IP} {host port}

在这种情况下,"guest"是在模拟器中运行的Android OS,"host"是运行模拟器的计算机.