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


78

无法解析符号:FusedLocationProviderClient。

Google Play服务版本使用11.0.1。

代码:声明时

private FusedLocationProviderClient mfusedLocationProviderclient;

2
欢迎来到StackOverflow!为了帮助其他人理解您的问题,请发布代码示例,任何日志的输出(例如LogCat)或一些示例以展示问题的最小,完整且可验证的示例
艾德·乔治

通常,您在问答网站上的帖子应包含一个实际问题。添加代码也有帮助。像您的Gradle文件一样
OneCricketeer

如果无法在该字段中解析,则您没有导入该类。
OneCricketeer

我做到了,问题解决了。此定位服务更新在最新的android studio版本(2.3.3)中可用
mark21 2015年

Answers:


125

您只需要在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


3
您还需要将行添加import com.google.android.gms.location.FusedLocationProviderClient;到“活动”中。
DrMcCleod '18

10

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

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

并重建您的应用程序,以便它可以下载所需的依赖项。该类FusedLocationProviderClient包含在此包中。


它对我不起作用。有什么其他所有功能可以解决此问题?
阿马尔lal TL

在下面查看答案并阅读文档,使用您需要的特定库,这样您就不会因为不使用的东西而使应用程序膨胀。
ChRoNoN

9

更改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;

您能否使用SO-editor提供的工具突出显示什么是代码,什么不是!
zeropublix


4

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

编译'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) {

                        }
                    });

3

就我而言,我应该包括

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

不只是 play-services-maps:11.4.0.


2

添加COARSE_PERMISSIONmanifest.xml文件。

<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/> 然后它会自动检测Class并导入。


2

在build.gradle(模块:app)中添加:

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

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



0

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

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


0

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

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

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

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


0

当每个人都答复时,您需要将以下行放入build.gradle文件中:

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

(替换implementcompile根据您的gradle这个版本)版本只需要高于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;
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.