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

Несколько файлов dex определяют Lcom/google/android/gms/internal/zzau

Я получаю сообщение об ошибке com.android.dex.DexException: Multiple dex files define Lcom/google/android/gms/internal/zzau;, когда я запускаю свое приложение gradle файлы

app.gradle

dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile 'com.android.support:support-v4:21.0.3'
compile 'com.android.support:appcompat-v7:21.0.3'
compile 'com.android.support:recyclerview-v7:21.0.0'
compile 'com.android.support:cardview-v7:21.0.0'
compile 'com.google.android.gms:play-services:7.0.+'
compile 'com.android.support:mediarouter-v7:21.0.3'
compile 'com.squareup:otto:1.3.5'
compile 'com.squareup.picasso:picasso:2.3.4'
compile 'com.squareup.okhttp:okhttp:2.2.0'
compile 'com.squareup.okhttp:okhttp-urlconnection:2.2.0'
compile 'com.squareup.retrofit:retrofit:1.9.0'
compile 'com.github.ksoichiro:android-observablescrollview:1.4.0'
compile 'com.astuetz:pagerslidingtabstrip:1.0.1'
compile 'com.facebook.android:facebook-android-sdk:4.1.0'
compile 'com.parse.bolts:bolts-android:1.+'
compile 'com.edmodo:rangebar:1.0.0'
compile 'com.melnykov:floatingactionbutton:1.3.0'
compile project(':library_viewpager')
compile project(':androidHorizontalListView')
compile project(':CastCompanionLibrary')
compile project(':mobihelp_sdk_android_v1.4')
compile fileTree(include: 'Parse-*.jar', dir: 'libs')
compile files('libs/Parse-1.9.2.jar')
compile files('libs/GoogleConversionTrackingSdk-2.2.2.jar')
}

CastCompanionLibrary

dependencies {
compile 'com.android.support:appcompat-v7:22.+'
compile 'com.android.support:mediarouter-v7:22.+'
compile 'com.google.android.gms:play-services-cast:7.5.0'
}

Как я могу это исправить? Я предполагаю, что ошибка возникает из-за того, что я использую сервисы Google Play как в модуле, так и в приложении. но версии разные. является причиной проблемы?

4b9b3361

Ответ 1

У меня была схожая проблема, и ваш вопрос помог мне решить мою проблему и, вероятно, поможет вам решить вашу проблему. Проблема в том, что вы определили:

dependencies {
...
  compile 'com.google.android.gms:play-services-cast:7.5.0'
}

и

dependencies {
...
  compile 'com.google.android.gms:play-services:7.0.+'
...
}

Так как google services 7.5.0, если вы используете отдельные модули из игровых сервисов, вы не можете одновременно использовать целые игровые сервисы в качестве зависимости. Решение заключается в выборе только тех служб, которые вам нужны, а не всего пакета, например:

вместо

dependencies {
...
  compile 'com.google.android.gms:play-services:7.0.+'
...
}

использование

dependencies {
...
  compile 'com.google.android.gms:play-services-maps:7.0.+'
  compile 'com.google.android.gms:play-services-location:7.0.+'
  compile 'com.google.android.gms:play-services-gcm:7.0.+'
...
}

Также я не уверен, но, вероятно, было бы неплохо использовать ту же версию google-сервисов как в конфигурациях gradle.

Ответ 2

У меня была аналогичная проблема после создания с использованием phonegap/cordova: com.android.dex.DexException: несколько файлов dex определяют Lcom/google/android/gms/internal/zzsk;

Я исправил его, отредактировав build.gradle(модуль Android), так как у меня было 2 библиотеки, которые должны иметь ту же самую версию с разными номерами версий (8.4.0 и 9.2.1 в моем случае)

dependencies{
....
//make sure are both same version (8.4.0 or 9.2.1 in my case)
compile 'com.google.android.gms:play-services-gcm:9.2.1'
// this is the one I changed:  compile 'com.google.android.gms:play-services-location:8.4.0'
compile 'com.google.android.gms:play-services-location:9.2.1' // it was 8.4.0
....
}

Ответ 3

Имел ту же проблему при интеграции firebase. Для моего случая это было вызвано несоответствием версии.

в приложении gradle, у меня было:

ext {
    PLAY_SERVICES_VERSION = '10.2.0'
}
dependencies {
    compile "com.google.android.gms:play-services-maps:$PLAY_SERVICES_VERSION"
    compile "com.google.android.gms:play-services-location:$PLAY_SERVICES_VERSION"
    compile "com.google.android.gms:play-services-places:$PLAY_SERVICES_VERSION"
    compile 'com.google.firebase:firebase-database:10.0.1'
}

зависимость firebase была добавлена ​​через встроенный плагин firebase в студии Android. Когда я соответствовал версиям, он работал.

Ответ 4

У меня была такая же проблема, но моя причина была вызвана новейшей версией firebase-ui 2.0.0. Таким образом, я понизил рейтинг до 1.2.0 и добавил следующую строку в файл build.gradle на уровне проекта:

allprojects {
    repositories {
        jcenter()

        // Add the following code
        maven {
            url 'https://maven.fabric.io/public'
        }
    }
}

Ответ 5

У меня была эта проблема недавно, причина была в разнице версий:

'com.google.firebase:firebase-ads:9.0.6'

'com.google.firebase:firebase-crash:11.0.2'

поэтому убедитесь, что у вас такая же версия.