Геокод не работает - Genymotion

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

  1. Цель сборки Android: 4.2.2 с Google API
  2. Genymotion: Galaxy Nexus 4.2.2 с Google Apps
  3. И я добавил google-play-services_lib в свой проект.

у меня есть это

E/GooglePlayServicesUtil(1954): ресурсы сервисов Google Play не найдены.
Проверьте конфигурацию проекта, чтобы убедиться, что ресурсы включены.

у кого-нибудь есть решения? Спасибо


person anombhayu    schedule 25.09.2013    source источник
comment
Вы загрузили и установили службы Google Play на эмуляторе?   -  person Egor    schedule 25.09.2013
comment
Вы используете Eclipse или Android Studio (gradle) для проекта? Из журнала, который вы опубликовали, похоже, что ваш проект настроен неправильно.   -  person fasteque    schedule 25.09.2013
comment
@Egor Я использовал genymotion galaxy nexus 4.2.2 с приложениями Google, поэтому по умолчанию в эмуляторе есть сервисы Google Play, не так ли?   -  person anombhayu    schedule 26.09.2013
comment
@fasteque да, я использую eclipse, и я полностью установил установку, поэтому карта работает отлично   -  person anombhayu    schedule 26.09.2013


Ответы (2)


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

Вы можете использовать карты Google для очень простой геолокации,

Я написал асинхронную задачу, чтобы сначала использовать Geocoder и откатиться к HttpRequest (с использованием залпа), если это не удается, по адресу https://gist.github.com/selecsosi/6705630

соответствующая часть:

Сделать запрос на

"http://maps.google.com/maps/api/geocode/json?address=" + URLEncoder.encode(mAddress, "utf-8") + "&ka&sensor=false"

где mAddress — это местоположение, которое вы ищете.

Этот запрос вернет вам объект JSON, который вы можете проанализировать следующим образом.

public static LatLng getLatLngFromGoogleJson(JSONObject jsonObject) {

    double lon = 0d;
    double lat = 0d;

    try {
        lon = ((JSONArray)jsonObject.get("results")).getJSONObject(0)
            .getJSONObject("geometry").getJSONObject("location")
            .getDouble("lng");

        lat = ((JSONArray)jsonObject.get("results")).getJSONObject(0)
            .getJSONObject("geometry").getJSONObject("location")
            .getDouble("lat");
    } catch (JSONException e) {
        if(Log.isLoggable(TAG, Log.ERROR))Log.e(TAG, "Error parsing google response", e);
    }

    return new LatLng(lat, lon);
}
person Selecsosi    schedule 25.09.2013
comment
спасибо за ответ! но я хочу использовать геокод для Android: D - person anombhayu; 26.09.2013
comment
Np, я просто говорю вам, что класс геокодирования не работает в geny, поэтому этот запасной вариант использует геокодер, когда он существует (на обычных устройствах Android), и возвращается к выполнению http-запроса карт Google, когда он находится на эмуляторе. (просто чтобы сделать мою жизнь более разумной и не менять код в зависимости от того, где я тестирую). - person Selecsosi; 26.09.2013

Похоже, есть способ установить gapps в genymotion

я нашел это https://gist.github.com/wbroek/9321145

Загрузите следующие ZIP-файлы:

Установщик перевода ARM v1.1 (http://www.mirrorcreator.com/files/0ZIO8PME/Genymotion-ARM-Translation_v1.1.zip_links)

Загрузите правильный GApps для вашей версии Android:

Затем откройте виртуальную машину Genymotion и перейдите на главный экран. Теперь перетащите Genymotion-ARM-Translation.zip в окно виртуальной машины Genymotion.

Там должно быть написано «Выполняется передача файлов», как только он попросит вас прошить его, нажмите «ОК».

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

Как только вы снова окажетесь на главном экране, перетащите gapps-jb-20130813-signed.zip (или любую другую версию) на свою виртуальную машину и нажмите «ОК», когда появится запрос.

После завершения снова перезагрузите виртуальную машину и откройте Google Play Store.

Войдите, используя свою учетную запись Google

В магазине перейдите в меню «Мои приложения» и дайте всему обновиться (исправляет множество проблем), а также попробуйте напрямую обновить сервисы Google Play (https://play.google.com/store/apps)./details?id=com.google.android.gms). Вы также можете выполнить поиск Google Maps, обновить его вручную (нажмите кнопку «Обновить» или «Установить»), и вы получите сообщение об обновлении сервисов Google Play (для Android 4.4.4 и 5.0 возможно, вам необходимо перезагрузить компьютер несколько раз, прежде чем обновления будут отображаться)

я рекомендую скачать gapps с

http://opengapps.org/ или http://www.teamandroid.com/gapps/, но они более версии в основной ссылке

person imaginabit    schedule 08.02.2016