Intereting Posts
Позиция DialogFragment в Android Развертывание в Google Play Store через API Метод вызова при нажатии кнопки home на андроиде Lint неиспользуемые ресурсы ложных срабатываний с новой версией плагина android для градиента Android: FileProvider IllegalArgumentException Не удалось найти настроенный root, содержащий /data/data/**/files/Videos/final.mp4 Как добавить Редактируемый edittext в список? Как определить жирный шрифт в селекторе Android? Исключение Runtime для Android: невозможно создать экземпляр ActivityInfo? Ошибка получения родительского элемента для элемента: ресурс не найден, который соответствует имени 'android: Theme.Material.Light' Фоновые изображения перескакивают, когда адресная строка скрывает iOS / Android / мобильный Chrome Android 3.0 – Как получить ВСЕ контакты через ContactsContract Android Virtual Device Manager – Webcam0 на 4.4.2 не работает RxAndroid и Retrofit: невозможно создать адаптер вызова для io.reactivex.Observable <retrofit2.Response <okhttp3.ResponseBody >> Maxlength атрибут ввода в html не работает на HTC One M7 Как переключить режим полета на Android 4.2 и выше с помощью root?

Google App Engine с Android – тестирование конечных точек на реальном устройстве

Я выполнял учебное пособие по созданию Endpoints Backend из проекта Android . Все компилируется и выглядит многообещающим. Бэкэнд вверх, я изменил CloudEndpointUtils # LOCAL_ANDROID_RUN на «true». Но когда я пытаюсь протестировать приложение на реальном устройстве (не эмуляторе), я не могу –

Java.net.SocketException: не удалось подключиться к / 10.0.2.2 (порт 8888) после 20000ms: isConnected failed: EHOSTUNREACH (нет маршрута к хосту)

Поэтому я посмотрел на CloudEndpointUtils и увидел, что настройка LOCAL_ANDROID_RUN на «true» заставляет приложение искать DevAppServer в http://10.0.2.2:8888 , который является виртуальным маршрутизатором эмулятора. Но я не использую эмулятор. Поэтому я попытался изменить константу, удерживая этот url на http://127.0.0.1:8888/ но все равно не повезло. Im теперь терпит неудачу –

Java.net.ConnectException: не удалось подключиться к /127.0.0.1 (порт 8888) после 20000ms: isConnected failed: ECONNREFUSED (соединение отклонено)

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

Любое предложение будет оценено по достоинству.

Solutions Collecting From Web of "Google App Engine с Android – тестирование конечных точек на реальном устройстве"

Добавить

 --address="0.0.0.0" 

Как параметр адреса сервера движка приложения, чтобы принимать все входящие соединения.

Если вы хотите сделать это в Android Studio, установите httpAddress следующим образом в своем build.gradle

 appengine { ... httpAddress = "0.0.0.0" } 

Для этого

  1. Поместите LOCAL_APP_ENGINE_SERVER_URL_FOR_ANDROID = ваш IP-адрес (это в вашем приложении Android)
  2. Щелкните правой кнопкой мыши проект App-Engine -> Run-> Run Configurations -> Web Application (левая панель) -> ваш проект приложения.

2. (Contnued) Перейти к Arugments -> добавить точно так же

–address = 0.0.0.0 –port = …….

*, Чтобы получить ваш IP-адрес, перейдите в cmd -> ipconfig -> add (IPV4-адрес с номером порта) на шаге 1

Важное примечание. Пожалуйста, измените это каждый раз, если вы подключаетесь к Интернету с помощью ключа или какого-либо динамического IP-интернет-сервиса

Спасибо, это прекрасно работает

Здесь много ответов, но я нашел их беспорядочными или незавершенными. Чтобы запустить локальный сервер на вашем компьютере и протестировать его с помощью реального устройства, выполните следующие действия:

1) Добавьте httpAddress = "0.0.0.0" в блок appengine в файле build.gradle backend (Google Cloud Endpoint), например:

 appengine { ... httpAddress = "0.0.0.0" } 

Согласно комментарию по этому вопросу, это означает, что «будет принимать из любого места».

2) Запустите свой серверный модуль локально (т. Е. Запустите веб-сервер). Это тривиально: выберите конфигурацию бэкэнд в раскрывающемся меню и нажмите зеленую кнопку. Здесь вы можете найти более подробные инструкции .

Теперь вы можете открыть браузер (на своем компьютере) и перейти к http://localhost:8080/ и просмотреть веб-страницу с помощью «Hello, Endpoints!». И многое другое.

3) Найдите IP-адрес вашего компьютера (на Mac перейдите в Системные настройки -> Сеть), а затем установите его в качестве корневого URL-кода в коде приложения для Android, например:

 MyApi.Builder builder = new MyApi.Builder( AndroidHttp.newCompatibleTransport(), new AndroidJsonFactory(), null ).setRootUrl("http://192.168.1.36:8080/_ah/api/") 

Это все!

При локальном тестировании конечных точек облака Google из-за отсутствия адреса localhost -address = "0.0.0.0" может быть недостаточно.

Мои конечные точки выдавали ошибку 404 Not Found при доступе с не localhost. Я разрешил его, включив параметр path в оформление API .

Моя аннотация API выглядела так:

 @ApiMethod(name="saveResponse", httpMethod = "post", path="saveResponse) public Response saveResponse(@Named("answerString") String responseString) 

Следуйте за пунктом 2. point by user248187 2. (Contnued) Перейти к Arugments -> добавить точно так же –address = 0.0.0.0 –port = …….

Теперь, на клиентском коде Android вам нужно изменить IP-адрес запроса (RootURL) ваших служб на локальный IP-адрес. Вы можете сделать это, используя builder.setRootUrl (). Хорошо, что вы добавляете квартиру для outomatice это на вас, клиент Android, тогда он может быстро переключаться между локальным и развернутым app-engiene. Такие как:

 //........................ private boolean mFlatLocalHostServer=true; private static final String LOCAL_IP = "192.168.1.11"; //Ip debug server public static final String LOCAL_SERVER_IP = "http://"+LOCAL_IP+":8888/_ah/api"; //...................... Mydataendpoint.Builder builder = new Mydataendpoint.Builder( AndroidHttp.newCompatibleTransport(), new GsonFactory(), mCredential); //request the service to local ip if(mFlatLocalHostServer){ builder.setRootUrl(LOCAL_SERVER_IP); } Mydataendpoint service = builder.build(); response=service.insertMyData(mydata).execute(); 

Адрес 10.0.2.2 предназначен для доступа к локальному хосту с использованием эмулятора, для доступа к локальному хосту с использованием реального устройства, используйте следующие шаги

-откройте свою командную строку (cmd), запустите ipconfig. -Установите ipaddress своего компьютера и замените его 10.0.2.2, -Build и запустите на своем устройстве.

Надеюсь, это поможет кому-то