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

Опитах се да внедря геокодирането на моя проект в емулатора на Genymotion, но не работи. Въпреки това картата работи перфектно.

  1. Android build target: 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, нали?   -  person anombhayu    schedule 26.09.2013
comment
@fasteque да, използвам eclipse и напълно инсталирах настройката, така че картата да работи перфектно   -  person anombhayu    schedule 26.09.2013


Отговори (2)


Геокодерът е известен като ненадежден на по-стари устройства (както и на Genymotion, така че използвам помощен клас, който работи във всички среди), както и проблематичен като цяло като клас (и точност на резултатите).

Можете да използвате Google Maps, за да направите геолокация много лесно,

Асинхронна задача, която написах, за да използвам първо Geocoder и да се върна към HttpRequest (използвайки volley), ако това не успее, е на 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, просто ви казвам, че класът geocode не работи в geny, така че този резервен вариант използва Geocoder, когато съществува (на обикновени устройства с Android), и се връща към правенето на http заявка за google maps, когато е в емулатора (само за да направя живота си по-разумен и да не трябва да разменям код въз основа на това къде тествам). - person Selecsosi; 26.09.2013

Изглежда, че има начин да инсталирате gapps в genymotion

намерих това https://gist.github.com/wbroek/9321145

Изтеглете следните ZIP файлове:

ARM Translation Installer v1.1 (http://www.mirrorcreator.com/files/0ZIO8PME/Genymotion-ARM-Translation_v1.1.zip_links)

Изтеглете правилните GApps за вашата версия на Android:

След това Отворете своя Genymotion VM и отидете на началния екран. Сега плъзнете и пуснете Genymotion-ARM-Translation.zip в прозореца на Genymotion VM.

Трябва да пише „Извършва се прехвърляне на файл“, след като ви помоли да го флашнете, щракнете върху „OK“

Сега рестартирайте вашата виртуална машина с ADB. Ако е необходимо, можете просто да затворите прозореца на VM, не се препоръчва

След като отново сте на началния екран, плъзнете и пуснете gapps-jb-20130813-signed.zip (или каквато и да е версия, която имате) на вашата виртуална машина и щракнете върху „OK“, когато бъдете попитани

След като приключи, рестартирайте отново своята виртуална машина и отворете 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