2013-05-19 43 views
23

Mam pobrać projekt demonstracyjny od http://developer.android.com/training/location/retrieve-current.html i myślę, że nie straciłem żadnych kroków; Ale nie mogę znaleźć pliku jar zawierającego plik "com.google.android.gms.location.LocationClient.class"Nie można znaleźć klasy com.google.android.gms.location.LocationClient (Android)

Znaleźliśmy wszystkie "google-play-services.jar" i "maps.jar", i "android.jar (Wszystkie wersje)" nie zawierają "LocationClient.class"?

+2

Właśnie aktualizuję "dodatki \ usługa Google Play" poprzez "Menedżer Android SDK", a najnowsze "google-play-services.jar" zawierają plik "LocationClient.class"; (i stary plik "google-play-services.jar" właśnie został pobrany 5 dni temu) –

Odpowiedz

1

Musisz zaktualizować pakiet SDK usługi Google Play, a następnie użyć zaktualizowanej biblioteki.

0

Zaktualizuj bibliotekę Google Play do najnowszej wersji przy użyciu Menedżera Android SDK. Ponadto musiałem ręcznie usunąć bibliotekę i dodać ją ponownie do mojego projektu po these steps. Wersja 03.01.36 zawiera:

enter image description here

Folder lokalizacja:

enter image description here

Być może trzeba zaktualizować ADT/SDK, jak również.

0

check poniżej linki

The import com.google.android.gms cannot be resolved

How to add google-play-services.jar project dependency so my project will run and present map

Wykonaj kroki i zaoszczędzić czas

  1. prawym przyciskiem myszy na swojej Project Explorer.
  2. wybierz New-> Project -> Android Application Projekt z istniejącego kodu
  3. Browse tylko do połowy tej drogi - "C: \ Users \ Nazwa Użytkownika \ Local \ Android \ sdk \ Extras \ Google \ google_play_services"
  4. Uważaj tylko do przeglądania - google_play_services a nie do google_play_services_lib

iw ten sposób jesteś w stanie importować Google Play lib serwisowym. Daj mi znać, jeśli masz jakieś pytania dotyczące tego samego.

14

Wystąpił problem z ostatnią biblioteką GPS. Musisz użyć starszej wersji niż najnowszej (6. +). Spróbuj ze starszą wersją. Nie widziałem niczego w dokumencie przestarzałym lub brakuje o LocationClient.class.

compile 'com.google.android.gms:play-services:5.+' 
+3

Działa to, ponieważ w wersji 5. + obecnie wycofany LocationClient jest nadal dołączany w wersji 6.5. + zastąpili go GoogleApiClient, więcej informacje tutaj http://stackoverflow.com/questions/24611977/android-locationclient-class-is-deprecated-but-used-in-documentation – TouchBoarder

+0

Dobra odpowiedź, ale tutaj znajdź wersję bardziej faktycznie: https://developers.google .com/android/guides/setup –

2

Rozwiązanie Jeremie Petitjean działało dla mnie. Przejdź do pliku youbuild.grade i skonfiguruj swoją aplikację dla wersji niższej. Właśnie tego użyłem i teraz działa:

apply plugin: 'com.android.application' 
android { 
    compileSdkVersion 19 
    buildToolsVersion "19.1.0" 

defaultConfig { 
    applicationId "<APPLICATION NAME>" 
    minSdkVersion 9 
    targetSdkVersion 19 
    versionCode 1 
    versionName "1.0" 
} 
buildTypes { 
    release { 
     minifyEnabled false 
     proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
    } 
} 

dependencies { 
    compile fileTree(dir: 'libs', include: ['*.jar']) 
    compile 'com.android.support:support-v4:19.1.0' 
    compile 'com.android.support:appcompat-v7:19.0.1' 
    compile 'com.google.android.gms:play-services:4.2+' 
} 
3

Ponieważ Klient lokalizacji jest nieaktualny, klasa nie występuje w pakiecie. Musimy użyć poniższych:

mGoogleApiClient = new GoogleApiClient.Builder(this) 
.addApi(LocationServices.API) 
.addConnectionCallbacks(new GoogleApiClient.ConnectionCallbacks(){ 

    @Override 
    public void onConnected(Bundle arg0) { 
     // TODO Auto-generated method stub 
     LocationRequest request = new LocationRequest(); 
     int priority = LocationRequest.PRIORITY_BALANCED_POWER_ACCURACY; 
     if (enableHighAccuracy) { 
      priority = LocationRequest.PRIORITY_HIGH_ACCURACY; 
     } 
     request.setPriority(priority); 

     LocationServices.FusedLocationApi.requestLocationUpdates(
       locationClient, request, new LocationListener() { 

        @Override 
        public void onLocationChanged(Location location) { 

        locationClient.disconnect(); 
        } 

     }); 
    } 

    @Override 
    public void onConnectionSuspended(int arg0) { 
     // TODO Auto-generated method stub 

    } 
    }) 
.addOnConnectionFailedListener(new GoogleApiClient.OnConnectionFailedListener() { 

    @Override 
    public void onConnectionFailed(ConnectionResult arg0) { 
     // TODO Auto-generated method stub 

    } 
}) 
.build(); 
19

Dodaj do pliku Gradle (x.y.z - aktualna wersja Usług Google Play):

compile 'com.google.android.gms:play-services-location:x.y.z' 
+0

od tego momentu najnowszy to: compile 'com.google.android.gms: play-services-location: 8.4.0' –

13

LocationClient jest przestarzałe. Musisz użyć GoogleApiclient coś takiego:

1: Zadeklaruj zmienną GoogleApiClient

private GoogleApiClient mGoogleApiClient; 

2: instancję

mGoogleApiClient = new GoogleApiClient.Builder(mThisActivity) 
    .addApi(LocationServices.API) 
    .addConnectionCallbacks(this) 
    .addOnConnectionFailedListener(this) 
    .build(); 

3: Wdrożenie oddzwan

public class YourClass extends BaseFragment implements 
    GoogleApiClient.ConnectionCallbacks, 
    GoogleApiClient.OnConnectionFailedListener, LocationListener { 

    @Override 
    public void onConnectionFailed(ConnectionResult result) { 
     // your code goes here 
    } 

    @Override 
    public void onConnected(Bundle connectionHint) { 
     //your code goes here 
    } 

    @Override 
    public void onConnectionSuspended(int cause) { 
     //your code goes here  
    } 
} 

4: uruchom aby uzyskać aktualizacje lokalizacji:

LocationServices.FusedLocationApi.requestLocationUpdates(
      mGoogleApiClient, mLocationRequest, this); 

5: Usuń lokalizację Aktualizacje:

LocationServices.FusedLocationApi.removeLocationUpdates(mGoogleApiClient, this); 

6: Get ostatniej znanej lokalizacji:

private Location mCurrentLocation; 

mCurrentLocation = LocationServices.FusedLocationApi.getLastLocation(mGoogleApiClient); 
+0

Dzięki, świetny sposób na przepisanie mojej lokalizacji- klasa pomocnicza z nowym interfejsem API. – Thermometer

1

dla korzyści kogokolwiek pracującego bezpośrednio z PhoneGap CLI. W swojej plugin.xml wymagają linię

<framework src="com.google.android.gms:play-services-location:+" /> 
0

Spróbuj jeśli używasz Androida Studio:

Kliknij prawym przyciskiem myszy na folderze z aplikacjami -> Otwórz Ustawienia modułu -> Zależności -> kliknij na przycisk Plus - > Wybierz zależność od biblioteki -> Wyszukaj "play-services" -> Kliknij dwukrotnie na com.google.android.gms: play-services

Naciśnij Ok i poczekaj, aż Gradle się odbuduje. Jeśli błąd wystąpi, oczyść i odbuduj swój projekt. here

Powiązane problemy