Імпорт com.google.android.gms не може бути вирішений


74

Я новачок у розробці Android. Дотримуючись цього підручника, я отримав помилки, The import com.google.android.gms cannot be resolvedколи писав код у MainActivity.java:

import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.MapFragment;
import com.google.android.gms.maps.model.BitmapDescriptorFactory;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.Marker;
import com.google.android.gms.maps.model.MarkerOptions;

Шукаючи різні виправлення, я обов’язково спробував їх:

  • Я завантажив Google API для певного рівня API через менеджер SDK для Android.
  • Я відмітив Google API як ціль побудови проекту.
  • Я додав <uses-library android:name="com.google.android.maps" /> рядок у AndroidManifest.xmlяк дочірній <application>елемент тегу.
  • Я очистив проект, вибравши Project->Clean...і побудував його з нуля.
  • Я включив .jarфайл для карт, клацнувши правою кнопкою миші на своєму проекті, перейшов до побудови шляху та додав зовнішній архів, розмістивши його у своєму SDK:android-sdk-windows\add-ons\addon_google_apis_google_inc_8\libs\maps

На жаль, ніщо з перерахованого не допомогло.

Відповіді:


40

Я відмітив Google API як ціль побудови проекту.

Це не має значення, оскільки це стосується Карт V1, і Ви намагаєтесь використовувати Карти V2.

Я включив файл .jar для карт, клацнувши правою кнопкою миші на своєму проекті, перейшов до побудови шляху та додав зовнішній архів, розміщуючи його у своєму SDK: android-sdk-windows \ add-ons \ addon_google_apis_google_inc_8 \ libs \ maps

Це подвійно неправильно.

По-перше, ніколи не змінюйте вручну шлях збірки в проекті Android . Якщо ви робите це, в кращому випадку ви зазнаєте аварійного завершення роботи під час виконання, оскільки JAR, який, на вашу думку, ви вклали у свій проект (за допомогою ручного зміни шляху збірки), немає у вашому файлі .apk. Для звичайного стороннього JAR додайте його в libs/каталог вашого проекту, який автоматично додасть його до шляху збірки та додасть його вміст у файл APK.

Однак Maps V2 не є JAR. Це проект бібліотеки Android, який містить JAR. Вам потрібен цілий проект бібліотеки.

Вам потрібно імпортувати android-sdk-windows\add-ons\addon_google_apis_google_inc_8проект у Eclipse, а потім додати його до своєї програми як посилання на проект бібліотеки Android .


2
Ви були праві. Я імпортував google-play-services-lib(що також містить карти), а потім додав його як посилання, і ці помилки тепер зникли. Проте я не впевнений, що робити з .jarуже імпортованим файлом. Чи повинен я турбуватися про те, щоб його якось видалити?
Арнольдас Бендорайтіс

@ArnoldasBendoraitis: скасуйте ручну зміну, яку ви внесли до шляху збірки.
CommonsWare

3
Уточнення: Імпортуйте проект до Eclipse за допомогою Файл → Імпорт → Android → Існуючий код Android у робочу область. І, звичайно, каталог, який ви шукаєте, не буде називатися „android-sdk-windows“, якщо ви не використовуєте Windows. ;-)
Майкл Шепер

1
@CommonsWare, Якось, якщо я додаю Jar безпосередньо, це працює, але коли я намагаюся замість цього посилатися на проект, це не працює. Посилання показує зелену галочку, коли я роблю "Додати". Однак, коли я натискаю "OK" і знову відкриваю Project> Properties, він знову перетворюється на червоний хрест. Чи знаєте ви, чому це може відбуватися?
Pacerier

1
Можливо, це оновлення. Але наразі шлях до імпорту - <sdk> \ extras \ google \ google_play_services \ libproject \ google-play-services_lib
jasxir

54

Інший спосіб - дозволити Eclipse виконати імпорт за вас. Наведіть курсор миші на com.google.android.gmsімпорт, який неможливо вирішити, і внизу спливаючого меню виберіть опцію Виправити налаштування проекту ... як показано нижче. Потім буде запропоновано імпортувати бібліотеку служб Google Play. Виберіть це, і вам повинно бути добре.

введіть тут опис зображення


Коли я пробую запропоноване рішення, я отримую таке повідомлення: "Не знайдено пропозицій щодо виправлення нерозв'язного посилання на" com.google.android.gms.internal.fn ". Клацніть тут, щоб вручну налаштувати шлях збірки або проект" CouponClub '. " Я вже успішно імпортував "google-play-services_lib", тому вважав, що цього буде достатньо, щоб мати доступ до com.google.android.gms.internal.fn.
Хайме Монтойя,

19

З мого досвіду (Затьмарення):

  1. Додав google-play-services_lib як проект і посилався на нього з мого додатка.
  2. Видалено всі банки, додані вручну
  3. Додано google-play-services.jar у папку "libs" мого проекту.
  4. У мене були деякі великі проблеми, оскільки я переплутав вкладку Замовлення та експорт, тому робочим рішенням є (у такому порядку): src, gen, API Google, Залежності Android, Приватні бібліотеки Android (лише цю перевірено для експорту).

Навіщо додавати банку Play Services вручну, якщо Gradle подбає про це у збірці?
Ігор Ганапольський

5
Тому що я не встиг перетворити свої проекти у формат Android Studio за допомогою Gradle. Це рішення для Eclipse IDE.
Олексій

13

У моєму випадку або все, що використовує android studio

Ви можете імпортувати послугу Google Play - -

місце у вашому build.gradle

compile 'com.google.android.gms:play-services:7.8.0'

або остання версія ігрових сервісів залежить від часу перегляду цієї відповіді

Більш конкретний імпорт

будь ласка, перегляньте цей окремий імпорт gradle

https://developers.google.com/android/guides/setup

Карти Гугл

com.google.android.gms:play-services-maps:7.8.0

може статися помилка

якщо ви стикаєтеся з помилкою під час синхронізації проекту з файлами gradle

введіть тут опис зображення

не забудьте встановити останнє оновлення

1- Сховище підтримки Android.

2- Бібліотека підтримки Android.

3- Репозиторій Google.

4-сервіси Google Play.

введіть тут опис зображення

Вам може знадобитися перезапустити android studio для відповіді


7

Зверніть увагу, що після імпортування проекту google-play-services_lib у вашу IDE вам також потрібно буде додати google-play-services.jar до: Project => Properties => Java build path => Libraries => Add JARs


Найпростіша відповідь у один рядок. Я не зміг зрозуміти, що відбувається, навіть після імпорту Служб Play. Потім я втомився змінювати його на Google_apis. Нарешті, для мене спрацювало однорядкове рішення.
sud007

Обережно, це спричинить проблеми: stackoverflow.com/questions/15894143/…
Марк Філіп

1

Вищевказані рішення повинні вирішити вашу проблему. Якщо цього не сталося, переконайтеся, що ви оновили Android sdk за допомогою диспетчера SDK та встановили найновіший проект lib, а потім ще раз повторіть наведені вище дії.


1

ще раз переконайтесь, що ці 2 речі відбуваються правильно не більше того. (ДЛЯ КОРИСТУВАЧІВ ECLIPSE)

1) скопіюйте файл jar з -> C: \ Users (ваше-ім'я користувача) \ android-sdks \ extras \ google \ google_play_services \ libproject \ google-play-services_lib \ libs \ google-play-services.jar

2) Клацніть проект правою кнопкою миші -> Шлях побудови -> Додати зовнішній архів-> google-play-services.jar


1

В Android Studio перейдіть: Файл -> Структура проекту ... -> Сповіщення (останній запис) -> перевірити Google Cloud Messaging

Зачекайте кілька секунд, і все готово :) import com.google.android.gms.gcm.GcmListenerService слід правильно вирішити


0

У мене теж була така ж проблема. Це вирішено шляхом компіляції з останніми версіями інструментів sdk. (Служби Play, інструменти побудови тощо) Зразок build.gradle наведений нижче для довідки.

    apply plugin: 'com.android.application'


android {
    compileSdkVersion 23
    buildToolsVersion "23.0.1"

    defaultConfig {
        applicationId "com.abc.bcd"
        minSdkVersion 14
        targetSdkVersion 23
        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.google.android.gms:play-services:8.4.0'
    compile 'com.android.support:appcompat-v7:23.0.1'
}

0

Припустимо, що ви використовуєте ECLIPSE:

Клацніть правою кнопкою миші ПРОЕКТ ВЛАСТИВОСТІ ANDROID

Якщо у вас перевірена версія ANDROID, ви повинні змінити її на GOOGLE API. Виберіть версію GOOGLE APIS, сумісну з цільовою версією вашого проекту.


1
Будь ласка, поясніть детально.
Дмитро Ісаков

@DmitryIsakov, який крок я хотів би пояснити?
tony gil

1
Схоже, я це зробив ... Перехід від Eclipse до AStudio було непростим завданням
Дмитро Ісаков

@DmitryIsakov - я намагався і повинен був зупинитися, бо не міг дозволити собі взяти час на розробку і присвятити його міграції. не могли б ви сказати мені деякі основні кроки, які ви зробили?
Тоні Гіл,

-1

У моєму випадку лише після того, як я додав gcm.jarдо папки lib, вона почала працювати. Це було тут:C:\adt-bundle-windows-x86_64-20131030\sdk\extras\google\gcm\gcm-client\dist

Отже, google-play-services.jarне вийшло ...


Це питання не стосується Google Map v1. Йдеться про Google Map v2. gcm.jar у цьому випадку марний.
cmcromance

-3

У мене була та сама проблема, так що безглуздий API я вирішив наступним чином, змінивши рядок імпорту

import com.google.android.gms.maps.model.LatLng;
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.