【问题标题】:Cannot Resolve Symbol: FusedLocationProviderClient. Google play services version used 11.0.1无法解析符号:FusedLocationProviderClient。使用的 Google Play 服务版本 11.0.1
【发布时间】:2017-11-22 22:17:22
【问题描述】:

无法解析符号:FusedLocationProviderClient。

使用的 Google Play 服务版本 11.0.1。

代码:while 声明

private FusedLocationProviderClient mfusedLocationProviderclient;

【问题讨论】:

  • 欢迎来到 StackOverflow!为了帮助其他人理解您的问题,请发布代码示例、任何日志的输出(例如 LogCat)或其他内容以证明您的问题的 minimal, complete, and verifiable example
  • 您在问答网站上的帖子通常应该包含一个实际问题。添加代码也有帮助。喜欢你的 Gradle 文件
  • 如果在字段中无法解析,则说明您没有导入该类。
  • 我做了,问题解决了。此位置服务更新在最新的 android studio 版本(2.3.3)中可用

标签: android google-play-services


【解决方案1】:

您只需将其包含在您的 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

【讨论】:

【解决方案2】:

在你的build.gradle(模块:app)中,需要添加如下依赖:

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

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

【讨论】:

  • 这对我不起作用。还有哪些其他功能可以解决这个问题?
  • 查看下面的答案并阅读文档,使用您需要的特定库,以免您的应用因不使用的东西而膨胀。
【解决方案3】:

在更改 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 工具突出显示什么是代码,什么不是!
【解决方案4】:

这个开发者Guide解决了我的问题

【讨论】:

  • 我想知道为什么文档没有将我们指向正确的位置来获取所需的依赖项。
【解决方案5】:

你只需要将它包含在你的 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) {

                        }
                    });

【讨论】:

    【解决方案6】:

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

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

    别忘了同步build.gradle(在build.gradle的右上角,你会看到同步更改的通知,点击它)。

    【讨论】:

      【解决方案7】:

      就我而言,我应该包括

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

      不仅仅是play-services-maps:11.4.0.

      【讨论】:

        【解决方案8】:

        manifest.xml 文件中添加COARSE_PERMISSION

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

        【讨论】:

          【解决方案9】:

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

          使用此依赖项

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

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

          【讨论】:

            【解决方案10】:

            将您的 google play 服务更新到 11.8.0 需要添加到bulild文件的代码如下

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

            【讨论】:

              【解决方案11】:

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

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

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

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

              【讨论】:

                【解决方案12】:

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

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

                (用 implement 代替 compile 取决于你的 gradle 版本) 显然,版本只需要高于 11.0.1。

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

                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 服务相关),所以我不得不做类似的事情:

                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;
                

                【讨论】:

                  猜你喜欢
                  • 1970-01-01
                  • 2018-02-08
                  • 1970-01-01
                  • 1970-01-01
                  • 2021-04-06
                  • 1970-01-01
                  • 1970-01-01
                  • 2018-02-08
                  • 1970-01-01
                  相关资源
                  最近更新 更多