Как общаться в Linux с Android 4.x.x и ниже usb? [Дубликат]

Если вам известен путь класса или jar, содержащий класс, то добавьте его в свой путь к классу во время его запуска. Вы можете использовать путь к классам, как указано здесь:

в Windows

java -classpath .;yourjar.jar YourMainClass

в UNIX / Linux

java -classpath .:yourjar.jar YourMainClass
40
задан Konrad Jamrozik 20 July 2015 в 20:08
поделиться

5 ответов

adb reverse был представлен в Android 5.0

71
ответ дан Alex P. 21 August 2018 в 10:44
поделиться
  • 1
    Итак, каково решение при использовании Android 4.2? – Augustin Riedinger 28 November 2015 в 00:04
  • 2
    Вот решение: facebook.github.io/react-native/docs/… – Augustin Riedinger 28 November 2015 в 00:07
  • 3
    Я получаю это в 5.0 – hellyale 2 April 2016 в 17:19
  • 4
    @AugustinRiedinger Ваша ссылка не очень понятна, как заменить adb reverse на более низкие API. С настройкой сервера вручную на устройстве, я мог бы разработать реакцию-родной до этого, но теперь я получаю сообщение об ошибке, которое, среди прочего, указывает на adb reverse, который терпит неудачу, поэтому я не знаю, как идти оттуда. Является ли настройка IP на устройстве достаточной, чтобы не требовать замены? – Giszmo 19 May 2016 в 20:45
  • 5
    Да, но это, к сожалению, невозможно с версией для Android ниже 5. Если кто-то не создает инструмент специально, но есть немного шансов, что это происходит, поскольку разработчики склонны двигаться вперед в версиях (хотя это не всегда к лучшему) – Augustin Riedinger 22 August 2016 в 20:45

Так как adb reverse не поддерживается в версиях Android ниже 5.0, вам нужно использовать альтернативный метод, например, подключение через Wi-Fi. Если вы используете React Native, Facebook добавил официальную документацию для подключения к серверу разработки через Wi-Fi . Цитируя инструкции для MacOS, но они также имеют их для Linux и Windows:

Способ 2. Подключение через Wi-Fi

Вы также можете подключиться к серверу разработки Вай-фай. Сначала вам нужно будет установить приложение на устройство с помощью USB-кабеля, но как только это будет сделано, вы можете отлаживать беспроводное соединение, следуя этим инструкциям. Прежде чем продолжить, вам понадобится текущий IP-адрес вашей машины.

Вы можете найти IP-адрес в системных настройках → Сеть.

Убедитесь, что ваш ноутбук и телефон находятся на одном и том же Wi-Fi. Откройте свое приложение React Native на своем устройстве. Вы увидите красный экран с ошибкой. Хорошо. Следующие шаги помогут исправить это. Откройте меню разработчика в приложении. Перейдите в раздел «Настройки Dev» → «Отладочный сервер сервера» для устройства. Введите IP-адрес устройства и порт локального сервера-разработчика (например, 10.0.1.1:8081). Вернитесь в меню «Разработчик» и выберите «Обновить JS».

25
ответ дан Jesús Carrera 21 August 2018 в 10:44
поделиться
  • 1
    Работал как шарм !. Благодарю. – KQI 27 March 2017 в 11:02
  • 2
    Лучший ответ!! благодаря – gatolgaj 1 April 2017 в 17:16
  • 3
    Еще одно замечание: если вы похожи на меня, который развивается на устройстве Android 4 (например, интеллектуальное телевидение), которое не поддерживает дрожание, вы все же можете запустить меню разработчика приложений на устройстве, запустив: & quot; входной ключ оболочки для клавиатуры adb KEYCODE_MENU & quot; , – yawl 1 June 2017 в 02:15
  • 4
    Если у вас нет сети Wi-Fi поблизости, просто подключите USB-устройство к вашему устройству и используйте IP-адрес, предоставляемый вашему компьютерному интерфейсу! – Janaka Bandara 16 May 2018 в 02:55

Внимательно выполните следующие действия.

Примечание. Все команды должны выполняться только внутри проекта.

  1. Сначала выполните эту команду:
    npm react-native start
    
  2. Открыть другое окно в том же проекте и запустить:
    curl "http://localhost:8081/index.android.bundle?platform=android" -o "android/app/src/main/assets/index.android.bundle"
    
  3. Это создаст index.android.bundle в папке с ресурсами
  4. Run:
    npm react-native run-android
    

Теперь вы можете получить apk в папке сборки, которая будет работать нормально.

11
ответ дан Paul Roub 21 August 2018 в 10:44
поделиться
  • 1
    Я думаю, что это должно быть «реакция-родной старт» и «реагировать-родной run-android» без «npm». npm для управления пакетами ... – Mzn 22 November 2016 в 09:53

adb reverse требуется Android 5.0+. Для устройств, предшествующих этому, вам нужно будет использовать обходной путь.

Если на вашем Android-устройстве установлен самый загруженный блок (большинство изображений Genymotion), вы можете эмулировать adb reverse с помощью этого заклинания:

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

В этом случае «гость» - это ОС Android, работающий в эмуляторе, а «хост» - компьютер, на котором запущен эмулятор.

4
ответ дан slipheed 21 August 2018 в 10:44
поделиться
  • 1
    Можете ли вы привести пример того, как получить гостевой порт, хост-IP и хост-порт? Я использовал adb-устройства для получения гостевого порта. Затем я использовал ifconfig en0, чтобы получить IP-адрес хоста, тогда я думаю, что порт 8080, потому что я использую собственный -нактивированный start -port = 8080, однако я получаю сообщение об ошибке nc: bind Address уже используется & quot; – kayla 6 March 2017 в 00:23
  • 2
    Он не будет работать, если 2 устройства не подключены к одной сети, просто USB недостаточно. То, что делает busybox nc, - это туннельные потоки. Итак, почему бы не подключиться к одной сети через WiFi и не модифицировать узел сбора пакетов по IP-адресу машины разработки? – iamawebgeek 12 April 2017 в 10:07

причина обращения adb не работает на android до 5, вы можете использовать adb вперед с услугой, прослушивающей android, и туннелировать другие соединения через это входящее соединение. Я делаю это в основном с ssh, но вам нужен сервер ssh на android. вы можете подключиться с помощью ssh -R incommingreverseportonandroid: hostyouwanttoforwardto: portyouwanttoforwardto sshuseronandroid @ localhost -p portyouhaveusedforadbforwaqrdtoaccessandroidssshserver

, но я не знаю, как включить ssh-сервер в android, и, возможно, есть лучший способ, потому что ssh использует шифрование, которое не требуется для usb и использовать cpu.

Я использую этот способ с моим сервером, чтобы разделить службу, когда меня принуждают за nat ...

надеюсь, что кто-то найдет способ довести этот теоретический путь до практической возможности

0
ответ дан Tim 21 August 2018 в 10:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: