Ошибка: несколько библиотек с именем пакета com.google.android.gms.license

Когда я пытаюсь запустить команду ionic cordova build android, выдает ошибку, как указано в заголовке выше. Затем я пытаюсь удалить один из gms, когда я снова создаю удаленное, он снова появляется. как это решить ?.

Вот мои зависимости моего build.gradle:

dependencies {
    compile fileTree(dir: 'libs', include: '*.jar')
    // SUB-PROJECT DEPENDENCIES START
    debugCompile(project(path: "CordovaLib", configuration: "debug"))
    releaseCompile(project(path: "CordovaLib", configuration: "release"))
    compile "com.google.android.gms:play-services-auth:+" // i remove this
    compile "com.google.android.gms:play-services-identity:+"
    compile "com.facebook.android:facebook-android-sdk:4.+"
    // SUB-PROJECT DEPENDENCIES END
}
26
0
8 441
15
Перейти к ответу Данный вопрос помечен как решенный

Ответы 15

Когда вы запускаете команду ионная кордова, вы можете изменить версию, у меня такая же ошибка, и я исправил проблему, изменив версию моих модулей узлов, моего плагина cordova, версию от студии Android.

Мой конф ниже:

СТУДИЯ ANDROID: 3.0.0

pply plugin: 'com.android.application'

buildscript { репозитории { jcenter () maven { url "https://maven.google.com" } }

// Switch the Android Gradle plugin version requirement depending on the
// installed version of Gradle. This dependency is documented at
// http://tools.android.com/tech-docs/new-build-system/version-compatibility
// and https://issues.apache.org/jira/browse/CB-8143
dependencies {
    classpath 'com.android.tools.build:gradle:2.2.3'
    classpath 'com.google.gms:google-services:3.1.1' // google-services plugin
}

}

// Разрешить плагинам объявлять зависимости Maven через build-extras.gradle. allprojects { репозитории { jcenter () maven { url "https://maven.google.com" } } }

оболочка задачи (тип: Wrapper) { gradleVersion = '2.14.1' }

... ... ...
... ...

применить плагин: 'com.google.gms.google-services'

Версия Gradle: 3.3 com.google.android.gms: play-services: 11.4.2

Иногда модуль узла и плагин Cordova ошибаются, поэтому вы удаляете вручную в папке. Не забудьте удалить и добавить плагин Cordova при его обновлении.

Попробуйте зайти в android studio => files => project structure => project => ok Обычно студия Android должна синхронизировать ваш градиент

ИЛИ ЖЕ

Ошибка: несколько библиотек с именем пакета com.google.android.gms.license

В моем случае проблема заключалась в том, что я включил:

compile 'com.google.android.gms:play-services-wearable:+'
compile 'com.google.android.gms:play-services:4.4.52'

как носимые игровые сервисы, так и обычные. Я закомментировал носимую часть, и она работает. Не уверен, понадобится ли мне это, но он был включен по умолчанию мастером проекта

Я надеюсь, что смогу вам помочь. Продолжать !

Ответ принят как подходящий

Я столкнулся с этой проблемой совсем недавно, и проблема для меня заключалась в том, что по какой-то причине файл android project.properties был сгенерирован с разными версиями для com.google.android.gms, как таковые:

target=android-26
android.library.reference.1=CordovaLib
cordova.system.library.1=com.android.support:support-v4:24.1.1+
cordova.system.library.2=com.google.android.gms:play-services-auth:+
cordova.system.library.3=com.google.android.gms:play-services-identity:+
cordova.system.library.4=com.google.android.gms:play-services-location:11.+

Это приводит к тому, что для библиотеки 2 и 3 требуется одна версия, а для библиотеки 4 требуется более конкретная версия, что приводит к дублированию ссылки на библиотеку во время компиляции.

Хотя я не думаю, что это должно быть окончательным решением, добавление конкретной библиотеки сработало для меня. Как таковой:

target=android-26
android.library.reference.1=CordovaLib
cordova.system.library.1=com.android.support:support-v4:24.1.1+
cordova.system.library.2=com.google.android.gms:play-services-auth:11.+
cordova.system.library.3=com.google.android.gms:play-services-identity:11.+
cordova.system.library.4=com.google.android.gms:play-services-location:11.+

У меня тоже сработало, но, как вы говорите, редактирование project.properties не может быть окончательным решением!

decates 21.03.2018 15:54

после таких изменений при попытке сборки Не удалось найти ни одной версии, соответствующей com.google.gms: google-services: 11+. Несовпадающие версии:

Muhammad chhota 23.03.2018 08:14

Думаю, вам придется изменить значения, чтобы они соответствовали той версии, которую вы используете. Ключевой идеей является то, что у вас есть одна и та же версия для всех ссылок.

rpbaltazar 23.03.2018 09:22

Это происходит из-за сервисов Play 12.0.0. Я пошел дальше и понизил уровень зависимостей до 11.8.0 (последняя известная рабочая версия для моего проекта). Я использую react native. У меня было 2 зависимости, которые тянули в 12.0.0 сервисов Google Play - com.google.android:play-services...12.0.0 Надеюсь это поможет.

спасибо за совет, ответ тоже помогает моей проблеме .. спасибо

Andika Ristian Nugraha 21.03.2018 07:33

Возможно, это связано с новым выпуском сервисов Google Play 12.0.0 (выпущен 20 марта 2018 г.) Я решил исправить зависимости: Добавить конфиг в android/build.gradle

allprojects {
repositories {
    ...
    configurations.all {
        resolutionStrategy {
            // Add force (11.0.0 is version you want to use)
             force 'com.google.firebase:firebase-core:11.0.0'
            force 'com.google.firebase:firebase-crash:11.0.0'
            force 'com.google.firebase:firebase-analytics:11.0.0'
            force 'com.google.firebase:firebase-messaging:11.0.0'
            force 'com.google.android.gms:play-services-base:11.0.0'
            force 'com.google.android.gms:play-services-maps:11.0.0'
            force 'com.google.android.gms:play-services-wallet:11.0.0'
        }
    }
}
}

Набор зависимостей взят с вашего android/app/build.gradle

в build.gradle добавьте это

configurations.all {
   resolutionStrategy {
       force "com.google.android.gms:play-services-ads:11.8.0"
       force "com.google.android.gms:play-services-base:11.8.0"
       force "com.google.android.gms:play-services-gcm:11.8.0"
       force "com.google.android.gms:play-services-analytics:11.8.0"
       force "com.google.android.gms:play-services-location:11.8.0"
       force "com.google.android.gms:play-services-basement:11.8.0"
       force "com.google.android.gms:play-services-tagmanager:11.8.0"
       force 'com.google.firebase:firebase-core:11.8.0'
       force 'com.google.firebase:firebase-crash:11.8.0'
       force 'com.google.firebase:firebase-auth:11.8.0'
       force 'com.google.firebase:firebase-common:11.8.0'
       force 'com.google.firebase:firebase-config:11.8.0'
       force 'com.google.firebase:firebase-messaging:11.8.0'
   }
}

если это не сработает, найдите в своем проекте строку '12 .0.0 'и добавьте в список над отсутствующей библиотекой

Это сработало - спасибо! Я лично считаю, что лучше разместить это в build-extras.gradle.

keldar 22.03.2018 14:22

Что мне нужно было сделать, чтобы сборка преуспела в моем приложении Ionic3:

  • Добавить плагин cordova-android-play-services-gradle-release
  • Удалите и повторно добавьте платформу Android
  • 11. + в файле platform / android / project.properties для библиотек (особенно если вы используете firebase)
  • 11. + для зависимостей в платформах / android / cordova-plugin-firebase / -build.gradle
  • Вышеуказанные изменения в платформах / android / build.gradle

Это может быть худший из возможных способов заставить все работать, но вроде как спас мне жизнь. Надеюсь, это кому-то поможет!

Для меня это был вопрос добавления номера версии в Сервисы Google Play в файле project.properies.

Итак, вам нужно изменить что-то вроде:

android.library.reference.1=CordovaLib
cordova.system.library.2=com.google.android.gms:play-services-auth:
cordova.system.library.3=com.google.android.gms:play-services-identity:

к:

android.library.reference.1=CordovaLib
cordova.system.library.2=com.google.android.gms:play-services-auth:11.
cordova.system.library.3=com.google.android.gms:play-services-identity:11.

В моем случае

npm update
cordova platform remove android
cordova platform add [email protected]

И замените в platform / android / projet.properties

cordova.system.library.1=com.android.support:support-v4+

К

cordova.system.library.1=com.android.support:support-v4:26+

просто измените платформу / android / project.properties на

target=android-26
android.library.reference.1=CordovaLib
cordova.system.library.1=com.android.support:support-v4:24.1.1+
cordova.system.library.2=com.google.android.gms:play-services-auth:11.+
cordova.system.library.3=com.google.android.gms:play-services-identity:11.+
cordova.system.library.4=com.google.android.gms:play-services-location:11.+

это сработало для меня

Меня устраивает.

node_modules/react-native-camera/android/build.gradle:
dependencies {
    compile 'com.facebook.react:react-native:+'
    compile 'com.google.android.gms:play-services-gcm:11.8.0' // update by me on 
    20180321
}

ОБНОВИТЬ

Причина этой ошибки была идентифицирована как ошибка в v12.0.0 библиотеки сервисов Google Play:

Known Issues with version 12.0.0 -license POM dependencies cause "more than one library with package name ‘com.google.android.gms.license'" issues in Ionic Pro.

Ошибка исправлена ​​в v12.0.1 библиотеки сервисов Google Play:

Restores unique package names for runtime linked -license artifacts which affected some build systems' (e.g. Ionic Pro) compatibility issues.

Таким образом, указание версии 12.0.1 или более поздней версии библиотеки сервисов Play через плагин Кордова-андроид-игры-сервисы-Gradle-релиз решает проблему, например:

cordova plugin add cordova-android-play-services-gradle-release  --variable PLAY_SERVICES_VERSION=12.+

Только это сработало для меня в build.gradle:

allprojects {
    repositories {
        ...
        configurations.all {
            resolutionStrategy.eachDependency { DependencyResolveDetails details ->
                def requested = details.requested
                if (requested.group == 'com.google.android.gms') {
                    details.useVersion '11.8.0'
                }
                if (requested.group == 'com.google.firebase') {
                    details.useVersion '11.8.0'
                }
            }
        }
    }
}

https://github.com/evollu/react-native-fcm/issues/857#issuecomment-375243825

1. Перейти в project.properties (в папке вашей платформы)

2. Я использовал только аналитику Google в моем "project.properties", и мне пришлось добавить "11. +" в конец версии, и это сработало для меня. Не уверен, что это долгосрочное решение, но это помогло.

cordova.system.library.2=com.google.android.gms:play-services-analytics:11.+

Я столкнулся с той же ошибкой в ​​моем ионном проекте, после небольшого поиска я прочитал об обновлении платформы Android, которая требуется для последней версии Android Gradle Plugin для создания приложения.

Решение очень простое просто выполните описанный ниже шаг.

  1. Удалите существующую платформу Anroid

ionic cordova platform remove android

  1. Добавьте минимальную версию Android SDK Build Tools 26.0.2 через Android SDK Manager, чтобы использовать последнюю версию Android Gradle Plugin для создания приложения.

  2. Добавить минимальную версию для платформы Android

ionic cordova platform add android@^6.4.0

Для справки: https://developers.google.com/android/guides/releases

API Google для Android

20 марта 2018 г. - Версия 12.0.0

Известные проблемы с версией 12.0.0

  • ...
  • -license POM-зависимости вызывают проблемы "более одной библиотеки с именем пакета com.google.android.gms.license" в Ionic Pro.
  • ...

Мы представим обновленную версию 12.0.1 для решения этих проблем в ближайшее время.


Мое обходное решение

(на основе последующего комментария Джереми Кастеллиотвечать и келдар)

Я использую следующий обходной путь (и я подчеркиваю, что это обходной путь).

Добавьте следующее в конец build-extras.gradle, создав файл при необходимости.

configurations.all {
  resolutionStrategy {
    force 'com.google.firebase:firebase-core:11.8+',
      'com.google.firebase:firebase-messaging:11.8+',
      'com.google.firebase:firebase-crash:11.8+',
      'com.google.firebase:firebase-config:11.8+',
      'com.google.firebase:firebase-auth:11.8+',
      'com.google.android.gms:play-services-tagmanager:11.8+',
      'com.google.android.gms:play-services-location:11.8+'
  }
}

Важно включить все ссылки на firebase и все библиотеки android.gms, если вы пропустите хотя бы одну из них, она все равно не будет создана. Найдите все ссылки в своих файлах gradle. В моем случае я пропустил firebase-auth, на который есть ссылка в файле .gradle папки плагинов firebase.

Что делает разрешениеСтратегияforce, так это отменяет выбор версии, сделанный проектом / плагинами, и заставляет gradle ссылаться на конкретную версию.

Нет необходимости редактировать project.properties или любые другие файлы gradle с помощью этого обходного пути.

Итак, я вижу, что эта проблема была исправлена ​​28 марта. Вчера я загрузил последнюю версию плагина Cordova Google Maps, но проблема все еще возникает. Нужно ли нам ждать выпуска плагина Cordova Google Maps?

Ciaran Gallagher 08.04.2018 19:29

Другие вопросы по теме