Подтвердить что ты не робот

Gradle: Ошибка: более одной библиотеки с именем пакета 'com.google.android.gms'

Что означает это сообщение об ошибке? У меня нет дублированных пакетов в моем проекте

Ошибка: выполнение выполнено для задачи ': SimpleReader: processDebugResources'.
Ошибка: более одной библиотеки с именем пакета "com.google.android.gms"
Вы можете временно отключить эту ошибку с помощью android.enforceUniquePackageName = false Однако это временно и будет применяться в версии 1.0

Мой build.gradle выглядит следующим образом:

buildscript {

    repositories {
        maven { url 'http://repo1.maven.org/maven2' }
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:0.9.1'
    }
}
apply plugin: 'android'
android {
    buildToolsVersion '19.0.3'
    defaultConfig {
        minSdkVersion 14
        targetSdkVersion 17

    }
    compileSdkVersion 17
    packagingOptions {
        exclude 'META-INF/DEPENDENCIES'
        exclude 'META-INF/NOTICE'
        exclude 'META-INF/LICENSE'
        exclude 'META-INF/LICENSE.txt'
        exclude 'META-INF/NOTICE.txt'
    }
    buildTypes {
    }
}
dependencies {
    compile 'com.android.support:support-v4:19.0.1'
    compile 'com.google.android.gms:play-services:4.2.42'
    compile files('libs/gson-2.2.4.jar')
    compile files('libs/httpmime-4.1.jar')
    compile files('libs/httpclient-4.1.1.jar')
    compile files('libs/jsoup-1.7.3.jar')
    compile project(':libraries:actionbarsherlock')
    compile project(':libraries:sherlocknavigationdrawer')
    compile project(':libraries:googleplayservices')
    compile project(':libraries:androidslidinguppanel')
    compile files('libs/protocol-1.0.4.jar')
    compile files('libs/sentry-0.1.4.jar')
    compile files('libs/commons-lang-2.3.jar')
}
4b9b3361

Ответ 1

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

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

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

Ответ 2

сегодня я столкнулся с той же проблемой. Мне нужно использовать Google Analytics, поэтому я импортирую библиотеку google analytics после учебника:

compile 'com.google.android.gms:play-services-analytics:9.0.0'

затем скомпилируйте проект, gradle скажите мне Error: more than one library with package name 'com.google.android.gms'

Я могу определенно убедиться, что я только импортирую com.google.android.gms один раз google analytics lib.

поэтому я перехожу на вкладку Project в Android Studio, чтобы узнать, на что зависят эти проекты, а затем нашел play-services-6.5.87 display в External Libraries, например, следующий снимок экрана:

см. Внешние библиотеки

так что теперь я знаю, что существует другая lib, зависящая от play-services-6.5.87, но я не делаю этого lib.

то я использую команду gradle в консоли для просмотра зависимостей проекта:

$ ./gradlew -q app:dependencies

gradle зависимости

результат говорит мне, что com.facebook.android:audience-network-sdk:4.6.0 зависит от него.

так как мы исправим эту проблему, двумя способами:

  • если вам не нужен этот audience-network-sdk, просто удалите его. мой проект на самом деле не нуждается.
  • если вам также нужны audience-network-sdk и google-analytics, используйте грамматику exclude group, например, следующий код фрагмента.

    //facebook SDK
    compile ('com.facebook.android:audience-network-sdk:4.6.0') 
            {exclude group: 'com.google.android.gms'}
    
    // google analytics
    compile 'com.google.android.gms:play-services-analytics:9.0.0'
    

в вашем случае, audience-network-sdk может быть любой другой lib, которая зависит от того же самого lib с другими libs. вот просто размышление о том, как разрешать подобные проблемы.

Ответ 3

Попробуйте удалить compile project(':libraries:googleplayservices') или compile 'com.google.android.gms:play-services:4.2.42'. Я уверен, что они одна и та же библиотека.

Ответ 4

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

compile 'com.google.android.gms:play-services-ads:8.4.0'
compile 'com.google.android.gms:play-services-gcm:8.4.0'

Ответ 5

Я долгое время смущался этой проблемой. Моя проблема немного отличается от вопроса, хотя тот же журнал ошибок. Я хочу, чтобы мой sublib buildtype был таким же с моим приложением buildtype. Поэтому я назначил buildtype для sublib, как сообщает мне документ. [ Gradle Руководство пользователя плагина] [1]

Это ошибка, которую я получил.

обработка flavorCustomResource

Ошибка: более одной библиотеки с com.xxx.libCommon

Это моя структура. lib1 и lib2 не зависят друг от друга.

app

- > lib1 → libCommon

- > lib2 → libCommon

Я получил ошибку только тогда, когда я создаю свой собственный buildtype.However, версия выпуска была Ok.

Подробнее. некоторые части моего build.gradle

приложения:

android {
    buildTypes {
        release{}
        custom{}
    }
}
configurations {
    flavorReleaseCompile
    flavorCustomCompile
}
dependencies{
    compile project(':lib1')
    flavorReleaseCompile project(path: ':lib2', configuration: ':release')
    flavorCustomCompile project(path: ':lib2', configuration: ':custom')
}

lib1:

android {
    publishNonDefault true
    buildTypes {
        release{}
        custom{}
    }
}

dependencies{
    releaseCompile project(path: ':libCommon', configuration: ':release')
    customCompile project(path: ':libCommon', configuration: ':custom')
}

lib2

dependencies {
    compile project(':libCommon')
}

Решение: настройте lib2 как lib1. проблема будет решена.

lib2:

android {
    publishNonDefault true
    buildTypes {
        release{}
        custom{}
    }
}

dependencies{
    releaseCompile project(path: ':libCommon', configuration: ':release')
    customCompile project(path: ':libCommon', configuration: ':custom')
}

Причина

Проблема заключается в публикации в библиотеке

Публикация по умолчанию - это выпуск. если lib2 не настроен, он будет использовать опубликованную по умолчанию libCommon (версия выпуска) по умолчанию, отличную от lib1 → libCommon (пользовательская версия), назначенная lib1 build.gradle.This появляется ошибка.

Я хочу, чтобы мой пост помог кому-то бороться с тем же вопросом или дать ему некоторый намек.

Ответ 6

Я столкнулся с аналогичной проблемой, я решил ее решить следующими шагами:

  • ионная платформа rm android

  • ионная платформа добавить android

  • ионная сборка андроида