无法解析符号:FusedLocationProviderClient。 Google Play服务版使用了11.0.1

时间:2017-06-20 11:31:20

标签: android google-play-services

  

无法解析符号:FusedLocationProviderClient。

Google Play服务版使用了11.0.1。

代码:声明时

private FusedLocationProviderClient mfusedLocationProviderclient;

12 个答案:

答案 0 :(得分:86)

您只需将其包含在 build.gradle 文件中:

implementation "com.google.android.gms:play-services-location:15.0.1"

或者如果你没有使用最新的gradle版本:

compile "com.google.android.gms:play-services-location:15.0.1"

注意:建议使用Google Play服务版本15.0.1或更高版本,其中包括此类的错误修复程序。更多细节在这里。

https://developers.google.com/android/reference/com/google/android/gms/location/FusedLocationProviderClient

答案 1 :(得分:7)

build.gradle(模块:应用)中,您需要添加以下依赖项:

dependencies {
    //...
    compile 'com.google.android.gms:play-services:11.0.0'
}

并重建您的应用,以便下载所需的依赖项。班级FusedLocationProviderClient包含在此套餐中。

答案 2 :(得分:5)

此开发者Guide解决了我的问题

答案 3 :(得分:3)

您只需要在build.gradle文件中包含它:

  

compile' com.google.android.gms:play-services-location:12.0.1'

检索位置代码:

FusedLocationProviderClient mFusedLocationClient =  LocationServices.getFusedLocationProviderClient(this);

            mFusedLocationClient.getLastLocation()
                    .addOnSuccessListener(this, new OnSuccessListener<Location>() {
                        @Override
                        public void onSuccess(Location location) {
                            // Got last known location. In some rare situations this can be null.

                        }
                    })
                    .addOnFailureListener(this, new OnFailureListener() {
                        @Override
                        public void onFailure(@NonNull Exception e) {

                        }
                    });

答案 4 :(得分:2)

就我而言,我应该包括

com.google.android.gms:play-services-location:11.4.0  

不只是play-services-maps:11.4.0.

答案 5 :(得分:1)

我知道现在已经很晚了,但很高兴回答这个问题。

使用此依赖项

编译'com.google.android.gms:play-services-location:11.0.4'

并参考此链接 - https://guides.codepath.com/android/Retrieving-Location-with-LocationServices-API

答案 6 :(得分:1)

在更改build.gradle(Mudule:app)后,将以下行导入代码,包括实现:

"com.google.android.gms:play-services-location:11.0.1"

import com.google.android.gms.location.FusedLocationProviderClient;
import com.google.android.gms.location.LocationServices;

答案 7 :(得分:1)

在build.gradle(模块:应用程序)中添加:

dependencies {
    ...
    implementation 'com.google.android.gms:play-services-location:17.0.0'
   ...
}

别忘了同步build.gradle(在build.gradle的右上角,您将收到一条通知以同步更改,单击它。)

答案 8 :(得分:0)

您只需要在build.gradle文件中包含它:

compile 'com.google.android.gms:play-services-maps:11.0.2'

位置和地图服务的版本应该相同。

Thread.Sleep()

答案 9 :(得分:0)

将您的Google Play服务更新为11.8.0 应添加到bulild文件的代码如下

compile 'com.google.android.gms:play-services-gcm:11.8.0'

答案 10 :(得分:0)

manifest.xml文件中添加<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>

Class 然后它会自动检测{{1}}并导入它。

答案 11 :(得分:0)

每个人都回答,您需要在build.gradle文件中添加以下行:

implement 'com.google.android.gms:play-services-location:11.0.1'

(根据您的Gradle版本用implement替换compile) 显然,该版本只需高于11.0.1。

但是,当我这样做时,我遇到了一个新错误。由于我已经在以前的版本(10.0.1)中实现了Play服务库(分析,身份验证,地图,位置),因此我不得不将它们全部更改为新版本-您只能在其他版本中拥有一个库,需要使它们全部匹配。 因此,我找到了这些库的实现行并将其更改为:

implementation group: 'com.google.android.gms', name: 'play-services-analytics', version: '11.0.1'
implementation group: 'com.google.android.gms', name: 'play-services-auth', version: '11.0.1'
implementation group: 'com.google.android.gms', name: 'play-services-maps', version: '11.0.1'
implementation group: 'com.google.android.gms', name: 'play-services-location', version: '11.0.1'

由于我也正在实现firebase(甚至不确定这是什么目的以及为什么与Play Services相关),所以我不得不做类似的事情:

implementation group: 'com.google.firebase', name: 'firebase-core', version: '11.0.1'
implementation group: 'com.google.firebase', name: 'firebase-crash', version: '11.0.1'

与gradle文件同步项目,并且FusedLocationProviderClient应该是可见的/可用的,从导入开始:

import com.google.android.gms.location.FusedLocationProviderClient;