2013-05-19 9 views
23

Ho scaricato un progetto demo da http://developer.android.com/training/location/retrieve-current.html e penso di non aver perso alcun passaggio; Ma non riesco a trovare quale file jar contenga il file "com.google.android.gms.location.LocationClient.class"Impossibile trovare la classe com.google.android.gms.location.LocationClient (android)

Abbiamo trovato tutti "google-play-services.jar" e "maps.jar", e "android.jar (Tutte le versioni)" non contiene "LocationClient.class"?

+2

Ho appena aggiornato il "servizio extra di riproduzione di Google" tramite "Android SDK Manager", trovo che l'ultimo "google-play-services.jar" contiene il file "LocationClient.class"; (e il vecchio file "google-play-services.jar" è appena stato scaricato 5 giorni fa) –

risposta

1

È necessario aggiornare l'SDK di Google Play Service e quindi utilizzare la libreria aggiornata.

0

Aggiorna la libreria di Google Play all'ultima versione utilizzando Android SDK Manager. Inoltre, ho dovuto rimuovere la libreria manualmente e aggiungerla di nuovo al mio progetto dopo these steps. Versione 3.1.36 contiene:

enter image description here

La cartella posizione:

enter image description here

Potrebbe essere necessario aggiornare l'ADT/SDK pure.

0

assegno sotto i collegamenti

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

Seguire questi passi e salvare il vostro tempo

  1. Fare clic destro sul vostro Gestione progetti.
  2. Selezionare Nuovo-> Progetto -> Android Application Project dal Codice esistente
  3. Sfoglia fino a solo questo percorso - "C: \ Users \ Nome Utente \ Local \ Android \ SDK \ extra \ Google \ google_play_services"
  4. Fare attenzione browse solo fino a - google_play_services e non fino a google_play_services_lib

e in questo modo si è in grado di importare il servizio di Google Play lib. Fatemi sapere se avete domande sullo stesso.

14

C'è qualche problema con l'ultima lib GPS. Devi usare una versione precedente rispetto alla più recente (6. +). Prova con una versione precedente. Non ho visto nulla all'interno del documento deprecato o mancante dello LocationClient.class.

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

Funziona perché in 5. + il LocationClient ora deprecato è ancora incluso mentre in 6.5. + lo hanno sostituito con un GoogleApiClient, altro informazioni qui http://stackoverflow.com/questions/24611977/android-locationclient-class-is-deprecated-but-used-in-documentation – TouchBoarder

+0

buona risposta, ma qui trovi la versione più in realtà: https://developers.google .com/android/guides/setup –

2

La soluzione di Jeremie Petitjean ha funzionato per me. Accedi al file youbuild.grade e configura la tua app per una versione precedente. Questo è quello che ho usato e funziona ora:

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

Come client di posizione è deprecato la classe non è più trovata nel pacchetto. Dobbiamo utilizzare i seguenti invece

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

Aggiungi al file Gradle (x.y.z - versione attuale di Google Play Services):

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

al momento l'ultimo è: compilare 'com.google.android.gms: play-services-location: 8.4.0' –

13

LocationClient è obsoleto. Devi usare GoogleApiclient, in questo modo:

1: Dichiarare una variabile GoogleApiClient

private GoogleApiClient mGoogleApiClient; 

2: Creare un'istanza

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

3: implementare Callback

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: Inizio per ottenere aggiornamenti sulla posizione:

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

5: Rimuovere Posizione Aggiornamenti:

LocationServices.FusedLocationApi.removeLocationUpdates(mGoogleApiClient, this); 

6: Get ultima posizione nota:

private Location mCurrentLocation; 

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

Grazie, ottimo modo per riscrivere la mia posizione- classe helper con questa nuova API. – Thermometer

1

A beneficio di tutti coloro che lavorano direttamente con PhoneGap CLI. Nella tua plugin.xml si richiede la linea

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

Prova questo se si utilizza Android Studio:

Fai clic destro sulla cartella app -> Apri Impostazioni modulo -> Dipendenze -> Fare clic sul pulsante più - > Scegli la dipendenza dalla biblioteca -> Cerca "servizi di gioco" -> Fai doppio clic su com.google.android.gms: servizi di gioco

Premi OK e attendi che Gradle si ricompili. Se l'errore si verifica, pulire e ricostruire il progetto. here