Не вдається вирішити символ: FusedLocationProviderClient. Версія служб Google Play, використана 11.0.1


78

Не вдається вирішити символ: FusedLocationProviderClient.

Використовується версія Google Play 11.0.1.

код: в той час як декларація

private FusedLocationProviderClient mfusedLocationProviderclient;

2
Ласкаво просимо до StackOverflow! Для того, щоб допомогти іншим зрозуміти вашу проблему, надішліть зразок коду, результати будь-яких журналів (наприклад, LogCat) або щось інше, щоб продемонструвати мінімальний, повний та перевіряний приклад вашої проблеми.
Ед Джордж

Зазвичай ваші дописи на сайті запитань і відповідей повинні містити актуальне запитання. Додавання коду теж допомагає. Як ваші файли Gradle
OneCricketeer

Якщо це не може вирішити проблему в полі, ви не імпортували клас.
OneCricketeer

Я зробив, і питання вирішено. Це оновлення служб локації доступне в останній версії андроїд-студії (2.3.3)
mark21,

Відповіді:


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

10

У своєму build.gradle(Модуль: додаток) вам потрібно додати таку залежність:

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

та відновіть свою програму, щоб вона могла завантажити необхідні залежності. Клас FusedLocationProviderClientвключений у цей пакет.


Це не працює для мене. Які інші функції існують для вирішення цієї проблеми?
Amal 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-редактора!
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_PERMISSIONу manifest.xmlфайл.

<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/> потім він автоматично визначає Classта імпортує його.


2

У build.gradle (модуль: додаток) додайте:

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'

(замінюючи implementнаcompile залежності від вашої Gradle версії) версія просто повинна бути вище 11.0.1, по- видимому.

Однак, коли я зробив це, у мене сталася нова помилка. Оскільки я вже впроваджував бібліотеки Play Service (аналітика, автентифікація, карти, розташування) у попередній версії (10.0.1), мені довелося змінити їх усі на нову версію - ви не можете мати лише одну з бібліотек іншої версії , потрібно, щоб вони всі збігалися. Тож я знайшов рядки реалізації з цими бібліотеками і змінив їх на:

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;
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.