Can't find the class com.google.android.gms.location.LocationClient (android)

旧巷老猫 提交于 2019-11-29 01:04:28

Add to Gradle file (x.y.z - actual version of Google Play Services):

compile 'com.google.android.gms:play-services-location:x.y.z'
Jeremie Petitjean

There is some problem with the last GPS lib. You have to use an older version than the latest(6.+). Try with an older version. I didn't see anything inside the doc deprecated or missing about the LocationClient.class.

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

LocationClient is deprecated. You have to use GoogleApiclient, like this:

1: Declare a GoogleApiClient variable

private GoogleApiClient mGoogleApiClient;

2: Instantiate

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

3: Implement 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: Start to get Location Updates:

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

5: Remove Location Updates:

LocationServices.FusedLocationApi.removeLocationUpdates(mGoogleApiClient, this);

6: Get Last Known Location:

private Location mCurrentLocation;

mCurrentLocation = LocationServices.FusedLocationApi.getLastLocation(mGoogleApiClient);

As Location Client is deprecated the class is no more found in the package. We have to use the following instead

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();
J Seaton

Jeremie Petitjean's solution worked for me. Go into youbuild.grade file and configure your app for a lower version. This is what I used and it works now:

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+'
}

You need to update Google Play Service SDK and then use updated library.

For the benefit of anyone working directly with Phonegap CLI. In your plugin.xml you require the line

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

Try this if you use Android Studio:

Right click on your app folder -> Open Module Settings -> Dependencies -> Click on the plus button -> Choose library dependency -> Search for "play-services" -> Double click on the com.google.android.gms:play-services

Press Ok and wait for Gradle to rebuild. If error occurs clean and rebuild your project. here

Update the Google Play library to the latest version using the Android SDK Manager. In addition, I had to remove the library manually and add it again to my project following these steps. Version 3.1.36 contains:

The location folder:

You might have to update the ADT/SDK as well.

Rakesh Soni

check below links

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

Follow these steps and save your time

  1. Right Click on your Project Explorer.
  2. Select New-> Project -> Android Application Project from Existing Code
  3. Browse upto this path only - "C:\Users\User Name\Local\Android\sdk\extras\google\google_play_services"
  4. Be careful browse only up to - google_play_services and not up to google_play_services_lib

And this way you are able to import the google play service lib. Let me know if you have any queries regarding the same.

add this to your project `

implementation 'com.google.android.gms:play-services-location:16.0.0'//location services`
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!