Firebase-- Ошибка: тип программы уже присутствует: com.google.api.AuthProviderOrBuilder - PullRequest
0 голосов
/ 08 января 2019

Я пытаюсь настроить ядро ​​Firebase, firestore, auth и firebase Messaging.

Я обновил все номера версий. Ошибка возникает, когда я включаю firestore и firebase core (все другие зависимости / комбинации работают).

ошибка:

AGPBI: {"kind":"error","text":"Program type already present: com.google.api.AuthProviderOrBuilder","sources":[{}],"tool":"D8"}

Задача: app: buildInfoGeneratorDebug FAILURE: сборка не удалась, исключение. * Что пошло не так: Не удалось выполнить задачу ': app: transformDexArchiveWithExternalLibsDexMergerForDebug'. com.android.builder.dexing.DexArchiveMergerException: ошибка при объединении архивов dex: Узнайте, как решить проблему в https://developer.android.com/studio/build/dependencies#duplicate_classes. Тип программы уже представлен: com.google.api.AuthProviderOrBuilder

приложение Gradle (отредактировано):

android {
compileSdkVersion 28
defaultConfig {
    applicationId "..."
    minSdkVersion 19
    targetSdkVersion 28
    versionCode 65
    versionName "1.5.0"
    testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    vectorDrawables.useSupportLibrary = true
    multiDexEnabled true
}
buildTypes {
{...}
}
compileOptions {
    targetCompatibility 1.8
    sourceCompatibility 1.8
}
dataBinding {
    enabled = true
}
packagingOptions {
    exclude 'META-INF/DEPENDENCIES'
    exclude 'META-INF/INDEX.LIST'
    exclude 'META-INF/proguard/androidx-annotations.pro'
}
lintOptions {
    checkReleaseBuilds false
}
}

dependencies {
def fcm_version = '17.3.4'
def firebase_version = '16.0.6'
def parse_version = '1.18.5'
def parse_facebook_version = '1.12.0'
def paypal_version = '2.16.0'
def permissions_version = '1.2.0'
def play_version = '16.0.0'
def work_version = '1.0.0-alpha09'
implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"

// support libraries

// play services
implementation "com.google.android.gms:play-services-location:$play_version"
implementation "com.google.android.gms:play-services-places:$play_version"

// Push notifications
implementation "com.google.firebase:firebase-messaging:17.3.4'
implementation "com.google.firebase:firebase-core:16.0.6'

// Crash Logging
implementation('com.crashlytics.sdk.android:crashlytics:2.9.4@aar') {
    transitive = true
}
testImplementation 'junit:junit:4.12'
androidTestImplementation "com.android.support.test:runner:$test_runner_version"
androidTestImplementation "com.android.support.test.espresso:espresso-core:$espresso_version"
implementation 'org.jetbrains.kotlin:kotlin-reflect:1.2.70'
implementation 'com.google.firebase:firebase-firestore:17.1.5'
implementation 'com.google.firebase:firebase-auth:16.1.0'
}

apply plugin: 'com.google.gms.google-services'

и проект gradle:

buildscript {
ext.kotlin_version = '1.2.70'
repositories {
    google()
    jcenter()
    maven { url 'https://maven.fabric.io/public' }
}
dependencies {
    classpath 'com.android.tools.build:gradle:3.3.0-alpha10'
    classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    //noinspection GradleDynamicVersion
    classpath 'io.fabric.tools:gradle:1.+'
    classpath 'com.google.gms:google-services:4.2.0'
}
}

allprojects {
repositories {
    google()
    jcenter()
    maven { url 'https://jitpack.io' }
    maven { url "https://clojars.org/repo/"}
    maven { url 'https://maven.fabric.io/public' }
    flatDir {
        dirs 'libs'
    }
}
}

 task clean(type: Delete) {
delete rootProject.buildDir
}

1 Ответ

0 голосов
/ 11 января 2019

Я столкнулся с тем, что потенциально может быть той же проблемой, и наконец решил ее.

Изучив зависимости, я обнаружил, что у меня было несколько версий protobuf, и обнаружил, что исключая все экземпляры protobuf-lite, я решил мою проблему.

Я добавил в свой файл приложения следующее:

configurations.all {
    exclude group: 'com.google.protobuf', module: 'protobuf-lite'
}

Надеюсь, это поможет вам так же, как и мне.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...