【问题标题】:Program type already present com google protobuf DescriptorProtos程序类型已经存在 com google protobuf DescriptorProtos
【发布时间】:2019-04-20 08:23:26
【问题描述】:

几个小时后,我决定分享我的问题。

// 根 build.gradle

buildscript {
   repositories {
    google()
    jcenter()
   }
   dependencies {
    classpath 'com.android.tools.build:gradle:3.2.1'
    classpath 'com.google.gms:google-services:4.1.0'
    classpath "io.realm:realm-gradle-plugin:5.4.1"
   }
}
   allprojects {
    repositories {
    google()
    jcenter()
    maven {url 'http://jitpack.io'}
  }
}
task clean(type: Delete) {
delete rootProject.buildDir
}

// 应用构建.gradle

buildscript {
    repositories {
        maven { url 'https://maven.fabric.io/public' }
    }

    dependencies {
        classpath 'io.fabric.tools:gradle:1.+'
    }
}

apply plugin: 'com.android.application'
apply plugin: 'io.fabric'
apply plugin: 'realm-android'

repositories {
    google()
    mavenCentral()
    maven { url 'https://maven.fabric.io/public' }
    maven { url "https://s3.amazonaws.com/repo.commonsware.com" }
    maven { url 'https://dl.bintray.com/siclo/SicloAndroidOSS' }
}

android {
    compileSdkVersion 28
    buildToolsVersion "28.0.3"

    dexOptions {
        javaMaxHeapSize "4g"
        jumboMode true
        preDexLibraries = false
    }

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }

    defaultConfig {
        multiDexEnabled true
        applicationId "my.chart.card.app"
        minSdkVersion 17
        targetSdkVersion 28
        versionCode 63
        versionName "2.1.7"
        vectorDrawables.useSupportLibrary = true
    }

  // SOME GRADLE CODE BUT I CUT IT (build release ...)

ext.ANDROID_SUPPORT_LIBRARY_VERSION = "28.0.0"
ext.GOOGLE_PLAY_VERSION = "16.0.0"
ext.FIREBASE_VERSION = "16.0.4"


dependencies {
    configurations {
        all*.exclude group: 'com.android.support', module: 'support-v13'
        all*.exclude group: 'com.google.firebase', module: 'firebase-crash'
        all*.exclude group: 'com.google.protobuf', module: 'protobuf-lite'
    }
    implementation fileTree(include: ['*.jar'], dir: 'libs')
    implementation 'com.android.support:appcompat-v7:' + ANDROID_SUPPORT_LIBRARY_VERSION
    implementation 'com.android.support:support-v4:' + ANDROID_SUPPORT_LIBRARY_VERSION
    implementation 'com.android.support:exifinterface:' + ANDROID_SUPPORT_LIBRARY_VERSION
    implementation 'com.android.support:percent:' + ANDROID_SUPPORT_LIBRARY_VERSION
    implementation 'com.android.support.constraint:constraint-layout:1.1.3'

    implementation 'com.android.support:design:' + ANDROID_SUPPORT_LIBRARY_VERSION
    implementation 'com.android.support:cardview-v7:' + ANDROID_SUPPORT_LIBRARY_VERSION
    implementation 'com.google.android.gms:play-services-location:' + GOOGLE_PLAY_VERSION
    implementation 'com.google.android.gms:play-services-places:' + GOOGLE_PLAY_VERSION

    implementation 'com.google.maps.android:android-maps-utils:0.5'

    implementation 'com.google.firebase:firebase-core:' + FIREBASE_VERSION
    implementation 'com.google.firebase:firebase-messaging:17.3.4'
    implementation 'com.google.firebase:firebase-database:16.0.3'
    implementation 'com.google.firebase:firebase-auth:' + FIREBASE_VERSION
    implementation 'com.google.firebase:firebase-storage:16.0.3'
    implementation ('com.firebaseui:firebase-ui-firestore:4.2.0') {
        exclude group: "com.google.protobuf", module: "protobuf-lite"
    }

    implementation 'com.github.PhilJay:MPAndroidChart:v3.0.3'

    implementation 'com.simmorsal.library:concealer_nested_scroll_view:2.0.0'
    implementation 'jp.wasabeef:recyclerview-animators:2.2.7'
    implementation 'com.gmail.samehadar:iosdialog:1.0'

    implementation 'com.squareup.retrofit2:retrofit:2.4.0'
    implementation 'com.squareup.retrofit2:converter-scalars:2.1.0'
    implementation 'com.squareup.retrofit2:adapter-rxjava:2.1.0'
    implementation 'com.squareup.retrofit2:converter-gson:2.1.0'
    implementation 'com.squareup.okhttp3:logging-interceptor:3.9.0'

    implementation 'com.google.code.gson:gson:2.8.5'

    implementation('com.crashlytics.sdk.android:crashlytics:2.6.8@aar') {
        transitive = true;
    }

    implementation 'io.card:android-sdk:5.5.1'

    implementation 'com.google.guava:guava:23.6-android'

    implementation 'com.cleveroad:slidingtutorial:1.0.8'

    implementation 'com.github.takusemba:spotlight:1.1.3'
    implementation 'uk.co.chrisjenx:calligraphy:2.2.0'
    implementation 'com.aurelhubert:ahbottomnavigation:2.1.0'

    implementation 'com.irozon.sneaker:sneaker:1.0.3'

    implementation('com.lamudi.phonefield:phone-field:0.1.3@aar') {
        transitive = true
    }

    implementation 'uk.co.deanwild:flowtextview:2.0.2@aar'
    implementation 'de.greenrobot:eventbus:2.4.0'
    implementation 'com.android.support:multidex:1.0.3'
    implementation 'com.facebook.android:facebook-login:4.37.0'

    implementation 'com.github.bumptech.glide:glide:4.8.0'
    annotationProcessor 'com.github.bumptech.glide:compiler:4.8.0'

    implementation 'com.algolia:algoliasearch-android:3.+'
    implementation 'com.github.takusemba:multisnaprecyclerview:1.3.3'
    implementation 'com.github.livefront:bridge:v1.1.2'
    implementation 'de.hdodenhof:circleimageview:2.2.0'

    implementation 'com.commonsware.cwac:provider:0.5.0'

    implementation 'io.intercom.android:intercom-sdk-base:5.+'
    implementation('io.intercom.android:intercom-sdk-fcm:5.+') {
        exclude group: 'io.intercom.android', module: 'intercom-sdk-base'
    }

    implementation 'com.siclo.ezphotopick:library:1.0.8'
}

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

自从我更新到 3.2.1 和 google play 服务到 4.1.0 并添加了 Firebase/Firestore 库后,我收到了这个错误:

Error: Program type already present: com.google.protobuf.DescriptorProtos$DescriptorProto$Builder

我试过 ./gradlew :app:dependencies > ./dependencies.txt 并像这样排除 protobuff exclude group: "com.google.protobuf", module: "protobuf-lite " 但是好像错了,还是错误。

gradle-4.6-all.zip 安卓工作室 3.2

如果有人遇到同样的问题并有解决方案,那就太好了。

【问题讨论】:

    标签: android gradle runtime-error


    【解决方案1】:

    重复的在这个库中 实现('com.lamudi.phonefield:phone-field:0.1.3@aar')

    但我不知道为什么 ./gradlew :app:dependencies 没有出示证据。

    【讨论】:

    • 添加 Firestore 时出现完全相同的问题... Foud Solutions ??
    【解决方案2】:

    问题来自您的 com.lamudi.phonefield 依赖项。存在导致崩溃的 googlecode 依赖项。

    尝试 fork 并更新到implementation 'com.googlecode.libphonenumber:libphonenumber:8.10.3'

    无论如何都不会维护该库。否则存在这个分叉:https://github.com/ialokim/android-phone-field

    【讨论】:

      【解决方案3】:

      将 firestore 降级到 v12.0.0 可消除此冲突

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-09-23
        • 2019-02-22
        • 1970-01-01
        • 2018-10-21
        • 1970-01-01
        • 2018-10-03
        • 2019-04-10
        • 2018-11-15
        相关资源
        最近更新 更多