Ошибка: более одной библиотеки с именем пакета 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.

платформа ионной кордовы удалить андроид

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

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

платформа ионной кордовой add [email protected]^6.4.0