Firebase Firestore не позволяет Gradle завершить сборку - PullRequest
0 голосов
/ 26 июня 2018

Эта ошибка отображается всякий раз, когда я пытаюсь синхронизировать Gradle. Тип программы уже представлен: com.google.protobuf.AbstractMessageLite $ Builder $ LimitedInputStream

Я использую AndroidStudio 3.1.3. Я также следовал документации по Firebase о том, как начать, но это не сработало. Я пытался искать, и я не мог получить много информации. Я читал об исключении protobuf, но он тоже не работает. Заранее спасибо за помощь.

Также, очевидно, комментирование строки с Firestore работает, поэтому проблема связана с зависимостью Firestore.

Ниже мой build.gradle для приложения:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 26
    //on laptop
    //buildToolsVersion "26.0.2"
    defaultConfig {
        applicationId "application_id_name(sanitized)"
        minSdkVersion 19
        targetSdkVersion 26
        multiDexEnabled true
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    buildToolsVersion '27.0.3'

    packagingOptions {
        exclude 'META-INF/LICENSE'
        exclude 'META-INF/DEPENDENCIES'
        exclude 'project.properties'
        exclude 'META-INF/INDEX.LIST'
    }
}

dependencies {
    implementation fileTree(include: ['*.jar'], dir: 'libs')
    implementation 'com.android.support.constraint:constraint-layout:1.1.2'
    implementation 'com.android.support:appcompat-v7:26.1.0'
    implementation 'com.google.firebase:firebase-storage:16.0.1'
    implementation 'com.firebaseui:firebase-ui-auth:4.0.1'
    implementation 'com.google.firebase:firebase-auth:16.0.1'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.2'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
    api 'com.google.android.gms:play-services-vision:15.0.0'
    api 'com.android.support:multidex:1.0.3'
    api 'com.google.cloud:google-cloud-storage:1.27.0'
    implementation 'com.google.firebase:firebase-firestore:17.0.2'

    implementation 'com.jjoe64:graphview:4.2.2'
}


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

А вот мой build.gradle для проекта:

// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {

    repositories {
        google()
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.1.3'
        //classpath 'com.android.tools.build:gradle:2.3.3'

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
        classpath 'com.google.gms:google-services:3.2.1'
    }
}

allprojects {
    repositories {
        google()
        jcenter()
    }
}

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

Получена эта ошибка при попытке исключить protobuf. Не удалось найти метод com.google.firebase: firebase-firestore: 17.0.2 () для аргументов [build_60vj88gllutj4zz7i0ca1ojkd $ _run_closure2 $ _closure7 @ 3b52fa7d] для объекта типа org.gra. api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler.

implementation 'com.google.firebase:firebase-firestore:17.0.2'{
    exclude group: 'com.google.protobuf', module: 'protobuf-java'
}

1 Ответ

0 голосов
/ 26 июня 2018

Обновите это:

classpath 'com.google.gms:google-services:3.2.1'

к этому:

classpath 'com.google.gms:google-services:4.0.1'

, чтобы иметь возможность использовать последнюю версию библиотек Firebase.

После выполнения ./gradlew :app:dependencies вы можете видеть, что и 'com.google.firebase:firebase-firestore:17.0.2', и 'com.google.cloud:google-cloud-storage:1.27.0' зависят от protobuf, что приводит к этой проблеме.

Так как Op не использует google-cloud-storage, удаление 'com.google.cloud:google-cloud-storage:1.27.0' исправило эту проблему.

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