Ошибка: более одной библиотеки с именем пакета com.google.android.gms.license
Когда я пытаюсь запустить команду ionic cordova build android
out error, как указано выше. Затем я пытаюсь удалить один из 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
}
Ответы
Ответ 1
Я столкнулся с этой проблемой совсем недавно, и проблема для меня заключалась в том, что по какой-то причине файл 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 и library.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.+
Ответ 2
в 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 'и добавьте в список выше отсутствующей библиотеки
Ответ 3
Это происходит из-за Play Services 12.0.0. Я пошел вперед и понизил зависимости до 11.8.0 (последняя известная рабочая версия для моего проекта). Я использую реакцию native. У меня было 2 зависимостей, которые занимали 12.0.0 сервисов google play - com.google.android:play-services...12.0.0
Надеюсь, это поможет.
Ответ 4
Возможно, это связано с новой версией сервисов 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
Ответ 5
Вещи, которые я должен был сделать, чтобы добиться успеха в моем приложении Ionic3:
- Добавить плагин cordova-android-play-services- gradle -release
- Удалить и снова добавить платформу Android.
- 11. + в файле platform/android/project.properties для библиотек (особенно если вы используете firebase)
- 11. + для зависимостей в платформах /android/cordova -plugin-firebase/-build.gradle
- Вышеупомянутые изменения в платформах /android/build.gradle
Это может быть самым худшим способом заставить все работать, но вроде бы спасла мою жизнь. Надеюсь, это поможет кому-то!
Ответ 6
В моем случае
npm update
cordova platform remove android
cordova platform add [email protected]
И замените в платформе /android/projet.properties
cordova.system.library.1=com.android.support:support-v4+
Для
cordova.system.library.1=com.android.support:support-v4:26+
Ответ 7
Когда вы запускаете команду ionic cordova, вы можете изменить версию, я имею ту же ошибку, и я исправил проблему, изменив версию моих модулей узлов, мою плагин cordova, версию с Android-студии.
Мой конфиг ниже:
ANDROID STUDIO: 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: стыковые услуги: 11.4.2
В некоторых случаях модуль node и плагин cordova ошибочны, поэтому вы вручную удаляете их в папке.
Не забудьте удалить и добавить плагин cordova при его обновлении.
Попробуйте пойти в android studio = > files = > project structure = > project = > ok
Обычно студия Android должна синхронизировать ваш gradle
ИЛИ
Ошибка: более одной библиотеки с именем пакета com.google.android.gms.license
В моем случае проблема заключалась в том, что я включал:
compile 'com.google.android.gms:play-services-wearable:+'
compile 'com.google.android.gms:play-services:4.4.52'
как носимые игровые сервисы, так и обычные. Я прокомментировал износостойкую часть, и она работает.
Не уверен, что он мне понадобится, но он по умолчанию был включен мастером проекта
Надеюсь, я могу вам помочь. Продолжайте!
Ответ 8
просто измените платформу /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.+
это сработало для меня
Ответ 9
Это работает для меня.
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
}
Ответ 10
Вы можете использовать плагин cordova-android-play-services-gradle-release, чтобы выровнять версии, определенные различными плагинами во время процесса сборки Cordova.
Установите его, используя желаемую версию, например:
cordova plugin add cordova-android-play-services-gradle-release --variable PLAY_SERVICES_VERSION=12.0.0
Ответ 11
Для справки: https://developers.google.com/android/guides/releases
API Google для Android
20 марта 2018 года - версия 12.0.0
Известные проблемы с версией 12.0.0
- ...
- -лицензии зависимостей POM вызывают "более чем одну библиотеку с именем пакета com.google.android.gms.license" в Ionic Pro.
- ...
Мы предоставим обновленную версию 12.0.1 для решения этих проблем в ближайшее время.
Мое обходное решение
(на основе jeremy castelli answer и keldar последующий комментарий)
Я использую следующее обходное решение (и подчеркиваю, это обходное решение).
Добавьте в нижнюю часть 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, если вы пропустите только один из них, она все равно не будет создана. Grep ваши файлы gradle для всех ссылок. В моем случае я пропустил firebase-auth, на который ссылался файл с плагином firebase.gradle.
Что resolutionStrategy force
делает переопределение вариантов версии, сделанных проектом/плагинами, и принуждает gradle ссылаться на конкретной версии.
Нет необходимости редактировать файл project.properties или любые другие gradle файлы с помощью этого обходного пути.
Ответ 12
Для меня это был вопрос добавления номера версии в Службы 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.
Ответ 13
Только это работало для меня в 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
Ответ 14
1. Перейдите в project.properties(в папке вашей платформы)
2. Я использовал только аналитику google в своих "project.properties" и должен был добавить "11. +" до конца версии, и это сработало для меня. Не уверен, что это долгое время исправить, но он сделал трюк.
cordova.system.library.2=com.google.android.gms:play-services-analytics:11.+
Ответ 15
Я столкнулся с такой же ошибкой в моем ионном проекте, после небольшого поиска, который я прочитал, чтобы обновить платформу Android, которая требуется для последнего плагина Android Gradle, чтобы создать приложение.
Решение очень просто, просто следуйте приведенному ниже шагу.
- Удалите существующую платформу Anroid.
платформа ионной кордовы удалить андроид
-
Добавьте минимальную версию Android SDK Build Tools 26.0.2 через Android SDK Manager, чтобы использовать последний плагин Android Gradle для создания приложения
-
Добавить минимальную версию для платформы Android
платформа ионной кордовой add [email protected]^6.4.0