Skip to content

Can't build android app with firebase and protobuf version higher than 4.26.1 #18127

@k-arabadzhiev

Description

@k-arabadzhiev

What version of protobuf and what language are you using?
Version: anything higher than v4.26.1
Language: Java/Kotlin

What operating system (Linux, Windows, ...) and version?
MacOS (M2)

What runtime / compiler are you using (e.g., python version or gcc version)
gradle 8.7, JDK 17, protobuf-gradle-plugin v0.9.4

What did you do?
Steps to reproduce the behavior:

  1. Implement dependencies for proto datastore:
// build.gradle

plugins {
    id 'com.android.library'
    id 'com.google.protobuf'
    ...
}

android {

    compileOptions {
        coreLibraryDesugaringEnabled true
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }

    protobuf {
        protoc {
            artifact = "com.google.protobuf:protoc:4.28.0"
        }

        generateProtoTasks {
            all().each { task ->
                task.builtins {
                    java {
                        option 'lite'
                    }
                    kotlin {
                        option 'lite'
                    }
                }
            }
        }
    }
}

dependencies {
    ...

    // firebase
    implementation platform("com.google.firebase:firebase-bom:33.2.0")
    implementation 'com.google.firebase:firebase-inappmessaging-display'
    implementation 'com.google.firebase:firebase-messaging'
    implementation 'com.google.firebase:firebase-analytics'
    implementation 'com.google.firebase:firebase-crashlytics'
    implementation 'com.google.firebase:firebase-perf'
    implementation 'com.google.firebase:firebase-installations'
 
    // data store
    implementation "androidx.datastore:datastore:1.1.1"
    implementation "com.google.protobuf:protobuf-kotlin-lite:4.28.0"
}


// project build.gradle

buildscript {
    repositories { ... }
    dependencies {
        classpath "com.android.tools.build:gradle:8.5.0"
        classpath "com.google.gms:google-services:4.4.2"
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:2.0.0"
        classpath "com.google.firebase:firebase-crashlytics-gradle:3.0.2"
        classpath "com.google.firebase:perf-plugin:1.4.1"
        classpath "com.google.protobuf:protobuf-gradle-plugin:0.9.4"
    }
}

  1. The relevant firebase dependencies that were already in the project are listed above as well
  2. Build and run the app

What did you expect to see
Successful build and running app

What did you see instead? Duplicate class errors

Execution failed for task ':app:checkMyAppStageDebugDuplicateClasses'.
> A failure occurred while executing com.android.build.gradle.internal.tasks.CheckDuplicatesRunnable
   > Duplicate class com.google.protobuf.DescriptorProtos found in modules protobuf-javalite-4.28.0.jar -> jetified-protobuf-javalite-4.28.0 (com.google.protobuf:protobuf-javalite:4.28.0) and protolite-well-known-types-18.0.0.aar -> jetified-protolite-well-known-types-18.0.0-runtime (com.google.firebase:protolite-well-known-types:18.0.0)
     Duplicate class com.google.protobuf.DescriptorProtos$1 found in modules protobuf-javalite-4.28.0.jar -> jetified-protobuf-javalite-4.28.0 (com.google.protobuf:protobuf-javalite:4.28.0) and protolite-well-known-types-18.0.0.aar -> jetified-protolite-well-known-types-18.0.0-runtime (com.google.firebase:protolite-well-known-types:18.0.0)
     Duplicate class com.google.protobuf.DescriptorProtos$DescriptorProto found in modules protobuf-javalite-4.28.0.jar -> jetified-protobuf-javalite-4.28.0 (com.google.protobuf:protobuf-javalite:4.28.0) and protolite-well-known-types-18.0.0.aar -> jetified-protolite-well-known-types-18.0.0-runtime (com.google.firebase:protolite-well-known-types:18.0.0)
     Duplicate class com.google.protobuf.DescriptorProtos$DescriptorProto$Builder found in modules protobuf-javalite-4.28.0.jar -> jetified-protobuf-javalite-4.28.0 (com.google.protobuf:protobuf-javalite:4.28.0) and protolite-well-known-types-18.0.0.aar -> jetified-protolite-well-known-types-18.0.0-runtime (com.google.firebase:protolite-well-known-types:18.0.0)
     Duplicate class com.google.protobuf.DescriptorProtos$DescriptorProto$ExtensionRange found in modules protobuf-javalite-4.28.0.jar -> jetified-protobuf-javalite-4.28.0 (com.google.protobuf:protobuf-javalite:4.28.0) and protolite-well-known-types-18.0.0.aar -> jetified-protolite-well-known-types-18.0.0-runtime (com.google.firebase:protolite-well-known-types:18.0.0)
     Duplicate class com.google.protobuf.DescriptorProtos$DescriptorProto$ExtensionRange$Builder found in modules protobuf-javalite-4.28.0.jar -> jetified-protobuf-javalite-4.28.0 (com.google.protobuf:protobuf-javalite:4.28.0) and protolite-well-known-types-18.0.0.aar -> jetified-protolite-well-known-types-18.0.0-runtime (com.google.firebase:protolite-well-known-types:18.0.0)
     Duplicate class com.google.protobuf.DescriptorProtos$DescriptorProto$ExtensionRangeOrBuilder found in modules protobuf-javalite-4.28.0.jar -> jetified-protobuf-javalite-4.28.0 (com.google.protobuf:protobuf-javalite:4.28.0) and protolite-well-known-types-18.0.0.aar -> jetified-protolite-well-known-types-18.0.0-runtime (com.google.firebase:protolite-well-known-types:18.0.0)
     Duplicate class com.google.protobuf.DescriptorProtos$DescriptorProto$ReservedRange found in modules protobuf-javalite-4.28.0.jar -> jetified-protobuf-javalite-4.28.0 (com.google.protobuf:protobuf-javalite:4.28.0) and protolite-well-known-types-18.0.0.aar -> jetified-protolite-well-known-types-18.0.0-runtime (com.google.firebase:protolite-well-known-types:18.0.0)
     Duplicate class com.google.protobuf.DescriptorProtos$DescriptorProto$ReservedRange$Builder found in modules protobuf-javalite-4.28.0.jar -> jetified-protobuf-javalite-4.28.0 (com.google.protobuf:protobuf-javalite:4.28.0) and protolite-well-known-types-18.0.0.aar -> jetified-protolite-well-known-types-18.0.0-runtime (com.google.firebase:protolite-well-known-types:18.0.0)
     Duplicate class com.google.protobuf.DescriptorProtos$DescriptorProto$ReservedRangeOrBuilder found in modules protobuf-javalite-4.28.0.jar -> jetified-protobuf-javalite-4.28.0 (com.google.protobuf:protobuf-javalite:4.28.0) and protolite-well-known-types-18.0.0.aar -> jetified-protolite-well-known-types-18.0.0-runtime (com.google.firebase:protolite-well-known-types:18.0.0)
     Duplicate class com.google.protobuf.DescriptorProtos$DescriptorProtoOrBuilder found in modules protobuf-javalite-4.28.0.jar -> jetified-protobuf-javalite-4.28.0 (com.google.protobuf:protobuf-javalite:4.28.0) and protolite-well-known-types-18.0.0.aar -> jetified-protolite-well-known-types-18.0.0-runtime (com.google.firebase:protolite-well-known-types:18.0.0)
     Duplicate class com.google.protobuf.DescriptorProtos$EnumDescriptorProto found in modules protobuf-javalite-4.28.0.jar -> jetified-protobuf-javalite-4.28.0 (com.google.protobuf:protobuf-javalite:4.28.0) and protolite-well-known-types-18.0.0.aar -> jetified-protolite-well-known-types-18.0.0-runtime (com.google.firebase:protolite-well-known-types:18.0.0)
     Duplicate class com.google.protobuf.DescriptorProtos$EnumDescriptorProto$Builder found in modules protobuf-javalite-4.28.0.jar -> jetified-protobuf-javalite-4.28.0 (com.google.protobuf:protobuf-javalite:4.28.0) and protolite-well-known-types-18.0.0.aar -> jetified-protolite-well-known-types-18.0.0-runtime (com.google.firebase:protolite-well-known-types:18.0.0)
     Duplicate class com.google.protobuf.DescriptorProtos$EnumDescriptorProto$EnumReservedRange found in modules protobuf-javalite-4.28.0.jar -> jetified-protobuf-javalite-4.28.0 (com.google.protobuf:protobuf-javalite:4.28.0) and protolite-well-known-types-18.0.0.aar -> jetified-protolite-well-known-types-18.0.0-runtime (com.google.firebase:protolite-well-known-types:18.0.0)
     Duplicate class com.google.protobuf.DescriptorProtos$EnumDescriptorProto$EnumReservedRange$Builder found in modules protobuf-javalite-4.28.0.jar -> jetified-protobuf-javalite-4.28.0 (com.google.protobuf:protobuf-javalite:4.28.0) and protolite-well-known-types-18.0.0.aar -> jetified-protolite-well-known-types-18.0.0-runtime (com.google.firebase:protolite-well-known-types:18.0.0)
     Duplicate class com.google.protobuf.DescriptorProtos$EnumDescriptorProto$EnumReservedRangeOrBuilder found in modules protobuf-javalite-4.28.0.jar -> jetified-protobuf-javalite-4.28.0 (com.google.protobuf:protobuf-javalite:4.28.0) and protolite-well-known-types-18.0.0.aar -> jetified-protolite-well-known-types-18.0.0-runtime (com.google.firebase:protolite-well-known-types:18.0.0)
     Duplicate class com.google.protobuf.DescriptorProtos$EnumDescriptorProtoOrBuilder found in modules protobuf-javalite-4.28.0.jar -> jetified-protobuf-javalite-4.28.0 (com.google.protobuf:protobuf-javalite:4.28.0) and protolite-well-known-types-18.0.0.aar -> jetified-protolite-well-known-types-18.0.0-runtime (com.google.firebase:protolite-well-known-types:18.0.0)
     Duplicate class com.google.protobuf.DescriptorProtos$EnumOptions found in modules protobuf-javalite-4.28.0.jar -> jetified-protobuf-javalite-4.28.0 (com.google.protobuf:protobuf-javalite:4.28.0) and protolite-well-known-types-18.0.0.aar -> jetified-protolite-well-known-types-18.0.0-runtime (com.google.firebase:protolite-well-known-types:18.0.0)
     Duplicate class com.google.protobuf.DescriptorProtos$EnumOptions$Builder found in modules protobuf-javalite-4.28.0.jar -> jetified-protobuf-javalite-4.28.0 (com.google.protobuf:protobuf-javalite:4.28.0) and protolite-well-known-types-18.0.0.aar -> jetified-protolite-well-known-types-18.0.0-runtime (com.google.firebase:protolite-well-known-types:18.0.0)
     Duplicate class com.google.protobuf.DescriptorProtos$EnumOptionsOrBuilder found in modules protobuf-javalite-4.28.0.jar -> jetified-protobuf-javalite-4.28.0 (com.google.protobuf:protobuf-javalite:4.28.0) and protolite-well-known-types-18.0.0.aar -> jetified-protolite-well-known-types-18.0.0-runtime (com.google.firebase:protolite-well-known-types:18.0.0)
     Duplicate class com.google.protobuf.DescriptorProtos$EnumValueDescriptorProto found in modules protobuf-javalite-4.28.0.jar -> jetified-protobuf-javalite-4.28.0 (com.google.protobuf:protobuf-javalite:4.28.0) and protolite-well-known-types-18.0.0.aar -> jetified-protolite-well-known-types-18.0.0-runtime (com.google.firebase:protolite-well-known-types:18.0.0)
     Duplicate class com.google.protobuf.DescriptorProtos$EnumValueDescriptorProto$Builder found in modules protobuf-javalite-4.28.0.jar -> jetified-protobuf-javalite-4.28.0 (com.google.protobuf:protobuf-javalite:4.28.0) and protolite-well-known-types-18.0.0.aar -> jetified-protolite-well-known-types-18.0.0-runtime (com.google.firebase:protolite-well-known-types:18.0.0)
     Duplicate class com.google.protobuf.DescriptorProtos$EnumValueDescriptorProtoOrBuilder found in modules protobuf-javalite-4.28.0.jar -> jetified-protobuf-javalite-4.28.0 (com.google.protobuf:protobuf-javalite:4.28.0) and protolite-well-known-types-18.0.0.aar -> jetified-protolite-well-known-types-18.0.0-runtime (com.google.firebase:protolite-well-known-types:18.0.0)
     Duplicate class com.google.protobuf.DescriptorProtos$EnumValueOptions found in modules protobuf-javalite-4.28.0.jar -> jetified-protobuf-javalite-4.28.0 (com.google.protobuf:protobuf-javalite:4.28.0) and protolite-well-known-types-18.0.0.aar -> jetified-protolite-well-known-types-18.0.0-runtime (com.google.firebase:protolite-well-known-types:18.0.0)
     Duplicate class com.google.protobuf.DescriptorProtos$EnumValueOptions$Builder found in modules protobuf-javalite-4.28.0.jar -> jetified-protobuf-javalite-4.28.0 (com.google.protobuf:protobuf-javalite:4.28.0) and protolite-well-known-types-18.0.0.aar -> jetified-protolite-well-known-types-18.0.0-runtime (com.google.firebase:protolite-well-known-types:18.0.0)
     Duplicate class com.google.protobuf.DescriptorProtos$EnumValueOptionsOrBuilder found in modules protobuf-javalite-4.28.0.jar -> jetified-protobuf-javalite-4.28.0 (com.google.protobuf:protobuf-javalite:4.28.0) and protolite-well-known-types-18.0.0.aar -> jetified-protolite-well-known-types-18.0.0-runtime (com.google.firebase:protolite-well-known-types:18.0.0)
     Duplicate class com.google.protobuf.DescriptorProtos$ExtensionRangeOptions found in modules protobuf-javalite-4.28.0.jar -> jetified-protobuf-javalite-4.28.0 (com.google.protobuf:protobuf-javalite:4.28.0) and protolite-well-known-types-18.0.0.aar -> jetified-protolite-well-known-types-18.0.0-runtime (com.google.firebase:protolite-well-known-types:18.0.0)
     Duplicate class com.google.protobuf.DescriptorProtos$ExtensionRangeOptions$Builder found in modules protobuf-javalite-4.28.0.jar -> jetified-protobuf-javalite-4.28.0 (com.google.protobuf:protobuf-javalite:4.28.0) and protolite-well-known-types-18.0.0.aar -> jetified-protolite-well-known-types-18.0.0-runtime (com.google.firebase:protolite-well-known-types:18.0.0)
     Duplicate class com.google.protobuf.DescriptorProtos$ExtensionRangeOptionsOrBuilder found in modules protobuf-javalite-4.28.0.jar -> jetified-protobuf-javalite-4.28.0 (com.google.protobuf:protobuf-javalite:4.28.0) and protolite-well-known-types-18.0.0.aar -> jetified-protolite-well-known-types-18.0.0-runtime (com.google.firebase:protolite-well-known-types:18.0.0)
     Duplicate class com.google.protobuf.DescriptorProtos$FieldDescriptorProto found in modules protobuf-javalite-4.28.0.jar -> jetified-protobuf-javalite-4.28.0 (com.google.protobuf:protobuf-javalite:4.28.0) and protolite-well-known-types-18.0.0.aar -> jetified-protolite-well-known-types-18.0.0-runtime (com.google.firebase:protolite-well-known-types:18.0.0)
     Duplicate class com.google.protobuf.DescriptorProtos$FieldDescriptorProto$Builder found in modules protobuf-javalite-4.28.0.jar -> jetified-protobuf-javalite-4.28.0 (com.google.protobuf:protobuf-javalite:4.28.0) and protolite-well-known-types-18.0.0.aar -> jetified-protolite-well-known-types-18.0.0-runtime (com.google.firebase:protolite-well-known-types:18.0.0)
     Duplicate class com.google.protobuf.DescriptorProtos$FieldDescriptorProto$Label found in modules protobuf-javalite-4.28.0.jar -> jetified-protobuf-javalite-4.28.0 (com.google.protobuf:protobuf-javalite:4.28.0) and protolite-well-known-types-18.0.0.aar -> jetified-protolite-well-known-types-18.0.0-runtime (com.google.firebase:protolite-well-known-types:18.0.0)
     Duplicate class com.google.protobuf.DescriptorProtos$FieldDescriptorProto$Label$1 found in modules protobuf-javalite-4.28.0.jar -> jetified-protobuf-javalite-4.28.0 (com.google.protobuf:protobuf-javalite:4.28.0) and protolite-well-known-types-18.0.0.aar -> jetified-protolite-well-known-types-18.0.0-runtime (com.google.firebase:protolite-well-known-types:18.0.0)
     Duplicate class com.google.protobuf.DescriptorProtos$FieldDescriptorProto$Label$LabelVerifier found in modules protobuf-javalite-4.28.0.jar -> jetified-protobuf-javalite-4.28.0 (com.google.protobuf:protobuf-javalite:4.28.0) and protolite-well-known-types-18.0.0.aar -> jetified-protolite-well-known-types-18.0.0-runtime (com.google.firebase:protolite-well-known-types:18.0.0)
     Duplicate class com.google.protobuf.DescriptorProtos$FieldDescriptorProto$Type found in modules protobuf-javalite-4.28.0.jar -> jetified-protobuf-javalite-4.28.0 (com.google.protobuf:protobuf-javalite:4.28.0) and protolite-well-known-types-18.0.0.aar -> jetified-protolite-well-known-types-18.0.0-runtime (com.google.firebase:protolite-well-known-types:18.0.0)
     Duplicate class com.google.protobuf.DescriptorProtos$FieldDescriptorProto$Type$1 found in modules protobuf-javalite-4.28.0.jar -> jetified-protobuf-javalite-4.28.0 (com.google.protobuf:protobuf-javalite:4.28.0) and protolite-well-known-types-18.0.0.aar -> jetified-protolite-well-known-types-18.0.0-runtime (com.google.firebase:protolite-well-known-types:18.0.0)
     Duplicate class com.google.protobuf.DescriptorProtos$FieldDescriptorProto$Type$TypeVerifier found in modules protobuf-javalite-4.28.0.jar -> jetified-protobuf-javalite-4.28.0 (com.google.protobuf:protobuf-javalite:4.28.0) and protolite-well-known-types-18.0.0.aar -> jetified-protolite-well-known-types-18.0.0-runtime (com.google.firebase:protolite-well-known-types:18.0.0)
     Duplicate class com.google.protobuf.DescriptorProtos$FieldDescriptorProtoOrBuilder found in modules protobuf-javalite-4.28.0.jar -> jetified-protobuf-javalite-4.28.0 (com.google.protobuf:protobuf-javalite:4.28.0) and protolite-well-known-types-18.0.0.aar -> jetified-protolite-well-known-types-18.0.0-runtime (com.google.firebase:protolite-well-known-types:18.0.0)
     Duplicate class com.google.protobuf.DescriptorProtos$FieldOptions found in modules protobuf-javalite-4.28.0.jar -> jetified-protobuf-javalite-4.28.0 (com.google.protobuf:protobuf-javalite:4.28.0) and protolite-well-known-types-18.0.0.aar -> jetified-protolite-well-known-types-18.0.0-runtime (com.google.firebase:protolite-well-known-types:18.0.0)
     Duplicate class com.google.protobuf.DescriptorProtos$FieldOptions$Builder found in modules protobuf-javalite-4.28.0.jar -> jetified-protobuf-javalite-4.28.0 (com.google.protobuf:protobuf-javalite:4.28.0) and protolite-well-known-types-18.0.0.aar -> jetified-protolite-well-known-types-18.0.0-runtime (com.google.firebase:protolite-well-known-types:18.0.0)
     Duplicate class com.google.protobuf.DescriptorProtos$FieldOptions$CType found in modules protobuf-javalite-4.28.0.jar -> jetified-protobuf-javalite-4.28.0 (com.google.protobuf:protobuf-javalite:4.28.0) and protolite-well-known-types-18.0.0.aar -> jetified-protolite-well-known-types-18.0.0-runtime (com.google.firebase:protolite-well-known-types:18.0.0)
     Duplicate class com.google.protobuf.DescriptorProtos$FieldOptions$CType$1 found in modules protobuf-javalite-4.28.0.jar -> jetified-protobuf-javalite-4.28.0 (com.google.protobuf:protobuf-javalite:4.28.0) and protolite-well-known-types-18.0.0.aar -> jetified-protolite-well-known-types-18.0.0-runtime (com.google.firebase:protolite-well-known-types:18.0.0)
     Duplicate class com.google.protobuf.DescriptorProtos$FieldOptions$CType$CTypeVerifier found in modules protobuf-javalite-4.28.0.jar -> jetified-protobuf-javalite-4.28.0 (com.google.protobuf:protobuf-javalite:4.28.0) and protolite-well-known-types-18.0.0.aar -> jetified-protolite-well-known-types-18.0.0-runtime (com.google.firebase:protolite-well-known-types:18.0.0)
     Duplicate class com.google.protobuf.DescriptorProtos$FieldOptions$JSType found in modules protobuf-javalite-4.28.0.jar -> jetified-protobuf-javalite-4.28.0 (com.google.protobuf:protobuf-javalite:4.28.0) and protolite-well-known-types-18.0.0.aar -> jetified-protolite-well-known-types-18.0.0-runtime (com.google.firebase:protolite-well-known-types:18.0.0)
     Duplicate class com.google.protobuf.DescriptorProtos$FieldOptions$JSType$1 found in modules protobuf-javalite-4.28.0.jar -> jetified-protobuf-javalite-4.28.0 (com.google.protobuf:protobuf-javalite:4.28.0) and protolite-well-known-types-18.0.0.aar -> jetified-protolite-well-known-types-18.0.0-runtime (com.google.firebase:protolite-well-known-types:18.0.0)
     Duplicate class com.google.protobuf.DescriptorProtos$FieldOptions$JSType$JSTypeVerifier found in modules protobuf-javalite-4.28.0.jar -> jetified-protobuf-javalite-4.28.0 (com.google.protobuf:protobuf-javalite:4.28.0) and protolite-well-known-types-18.0.0.aar -> jetified-protolite-well-known-types-18.0.0-runtime (com.google.firebase:protolite-well-known-types:18.0.0)
     Duplicate class com.google.protobuf.DescriptorProtos$FieldOptionsOrBuilder found in modules protobuf-javalite-4.28.0.jar -> jetified-protobuf-javalite-4.28.0 (com.google.protobuf:protobuf-javalite:4.28.0) and protolite-well-known-types-18.0.0.aar -> jetified-protolite-well-known-types-18.0.0-runtime (com.google.firebase:protolite-well-known-types:18.0.0)
     Duplicate class com.google.protobuf.DescriptorProtos$FileDescriptorProto found in modules protobuf-javalite-4.28.0.jar -> jetified-protobuf-javalite-4.28.0 (com.google.protobuf:protobuf-javalite:4.28.0) and protolite-well-known-types-18.0.0.aar -> jetified-protolite-well-known-types-18.0.0-runtime (com.google.firebase:protolite-well-known-types:18.0.0)
     Duplicate class com.google.protobuf.DescriptorProtos$FileDescriptorProto$Builder found in modules protobuf-javalite-4.28.0.jar -> jetified-protobuf-javalite-4.28.0 (com.google.protobuf:protobuf-javalite:4.28.0) and protolite-well-known-types-18.0.0.aar -> jetified-protolite-well-known-types-18.0.0-runtime (com.google.firebase:protolite-well-known-types:18.0.0)
     Duplicate class com.google.protobuf.DescriptorProtos$FileDescriptorProtoOrBuilder found in modules protobuf-javalite-4.28.0.jar -> jetified-protobuf-javalite-4.28.0 (com.google.protobuf:protobuf-javalite:4.28.0) and protolite-well-known-types-18.0.0.aar -> jetified-protolite-well-known-types-18.0.0-runtime (com.google.firebase:protolite-well-known-types:18.0.0)
     Duplicate class com.google.protobuf.DescriptorProtos$FileDescriptorSet found in modules protobuf-javalite-4.28.0.jar -> jetified-protobuf-javalite-4.28.0 (com.google.protobuf:protobuf-javalite:4.28.0) and protolite-well-known-types-18.0.0.aar -> jetified-protolite-well-known-types-18.0.0-runtime (com.google.firebase:protolite-well-known-types:18.0.0)
     Duplicate class com.google.protobuf.DescriptorProtos$FileDescriptorSet$Builder found in modules protobuf-javalite-4.28.0.jar -> jetified-protobuf-javalite-4.28.0 (com.google.protobuf:protobuf-javalite:4.28.0) and protolite-well-known-types-18.0.0.aar -> jetified-protolite-well-known-types-18.0.0-runtime (com.google.firebase:protolite-well-known-types:18.0.0)
     Duplicate class com.google.protobuf.DescriptorProtos$FileDescriptorSetOrBuilder found in modules protobuf-javalite-4.28.0.jar -> jetified-protobuf-javalite-4.28.0 (com.google.protobuf:protobuf-javalite:4.28.0) and protolite-well-known-types-18.0.0.aar -> jetified-protolite-well-known-types-18.0.0-runtime (com.google.firebase:protolite-well-known-types:18.0.0)
     Duplicate class com.google.protobuf.DescriptorProtos$FileOptions found in modules protobuf-javalite-4.28.0.jar -> jetified-protobuf-javalite-4.28.0 (com.google.protobuf:protobuf-javalite:4.28.0) and protolite-well-known-types-18.0.0.aar -> jetified-protolite-well-known-types-18.0.0-runtime (com.google.firebase:protolite-well-known-types:18.0.0)
     Duplicate class com.google.protobuf.DescriptorProtos$FileOptions$Builder found in modules protobuf-javalite-4.28.0.jar -> jetified-protobuf-javalite-4.28.0 (com.google.protobuf:protobuf-javalite:4.28.0) and protolite-well-known-types-18.0.0.aar -> jetified-protolite-well-known-types-18.0.0-runtime (com.google.firebase:protolite-well-known-types:18.0.0)
     Duplicate class com.google.protobuf.DescriptorProtos$FileOptions$OptimizeMode found in modules protobuf-javalite-4.28.0.jar -> jetified-protobuf-javalite-4.28.0 (com.google.protobuf:protobuf-javalite:4.28.0) and protolite-well-known-types-18.0.0.aar -> jetified-protolite-well-known-types-18.0.0-runtime (com.google.firebase:protolite-well-known-types:18.0.0)
     Duplicate class com.google.protobuf.DescriptorProtos$FileOptions$OptimizeMode$1 found in modules protobuf-javalite-4.28.0.jar -> jetified-protobuf-javalite-4.28.0 (com.google.protobuf:protobuf-javalite:4.28.0) and protolite-well-known-types-18.0.0.aar -> jetified-protolite-well-known-types-18.0.0-runtime (com.google.firebase:protolite-well-known-types:18.0.0)
     Duplicate class com.google.protobuf.DescriptorProtos$FileOptions$OptimizeMode$OptimizeModeVerifier found in modules protobuf-javalite-4.28.0.jar -> jetified-protobuf-javalite-4.28.0 (com.google.protobuf:protobuf-javalite:4.28.0) and protolite-well-known-types-18.0.0.aar -> jetified-protolite-well-known-types-18.0.0-runtime (com.google.firebase:protolite-well-known-types:18.0.0)
     Duplicate class com.google.protobuf.DescriptorProtos$FileOptionsOrBuilder found in modules protobuf-javalite-4.28.0.jar -> jetified-protobuf-javalite-4.28.0 (com.google.protobuf:protobuf-javalite:4.28.0) and protolite-well-known-types-18.0.0.aar -> jetified-protolite-well-known-types-18.0.0-runtime (com.google.firebase:protolite-well-known-types:18.0.0)
     Duplicate class com.google.protobuf.DescriptorProtos$GeneratedCodeInfo found in modules protobuf-javalite-4.28.0.jar -> jetified-protobuf-javalite-4.28.0 (com.google.protobuf:protobuf-javalite:4.28.0) and protolite-well-known-types-18.0.0.aar -> jetified-protolite-well-known-types-18.0.0-runtime (com.google.firebase:protolite-well-known-types:18.0.0)
     Duplicate class com.google.protobuf.DescriptorProtos$GeneratedCodeInfo$Annotation found in modules protobuf-javalite-4.28.0.jar -> jetified-protobuf-javalite-4.28.0 (com.google.protobuf:protobuf-javalite:4.28.0) and protolite-well-known-types-18.0.0.aar -> jetified-protolite-well-known-types-18.0.0-runtime (com.google.firebase:protolite-well-known-types:18.0.0)
     Duplicate class com.google.protobuf.DescriptorProtos$GeneratedCodeInfo$Annotation$Builder found in modules protobuf-javalite-4.28.0.jar -> jetified-protobuf-javalite-4.28.0 (com.google.protobuf:protobuf-javalite:4.28.0) and protolite-well-known-types-18.0.0.aar -> jetified-protolite-well-known-types-18.0.0-runtime (com.google.firebase:protolite-well-known-types:18.0.0)
     Duplicate class com.google.protobuf.DescriptorProtos$GeneratedCodeInfo$AnnotationOrBuilder found in modules protobuf-javalite-4.28.0.jar -> jetified-protobuf-javalite-4.28.0 (com.google.protobuf:protobuf-javalite:4.28.0) and protolite-well-known-types-18.0.0.aar -> jetified-protolite-well-known-types-18.0.0-runtime (com.google.firebase:protolite-well-known-types:18.0.0)
     Duplicate class com.google.protobuf.DescriptorProtos$GeneratedCodeInfo$Builder found in modules protobuf-javalite-4.28.0.jar -> jetified-protobuf-javalite-4.28.0 (com.google.protobuf:protobuf-javalite:4.28.0) and protolite-well-known-types-18.0.0.aar -> jetified-protolite-well-known-types-18.0.0-runtime (com.google.firebase:protolite-well-known-types:18.0.0)
     Duplicate class com.google.protobuf.DescriptorProtos$GeneratedCodeInfoOrBuilder found in modules protobuf-javalite-4.28.0.jar -> jetified-protobuf-javalite-4.28.0 (com.google.protobuf:protobuf-javalite:4.28.0) and protolite-well-known-types-18.0.0.aar -> jetified-protolite-well-known-types-18.0.0-runtime (com.google.firebase:protolite-well-known-types:18.0.0)
     Duplicate class com.google.protobuf.DescriptorProtos$MessageOptions found in modules protobuf-javalite-4.28.0.jar -> jetified-protobuf-javalite-4.28.0 (com.google.protobuf:protobuf-javalite:4.28.0) and protolite-well-known-types-18.0.0.aar -> jetified-protolite-well-known-types-18.0.0-runtime (com.google.firebase:protolite-well-known-types:18.0.0)
     Duplicate class com.google.protobuf.DescriptorProtos$MessageOptions$Builder found in modules protobuf-javalite-4.28.0.jar -> jetified-protobuf-javalite-4.28.0 (com.google.protobuf:protobuf-javalite:4.28.0) and protolite-well-known-types-18.0.0.aar -> jetified-protolite-well-known-types-18.0.0-runtime (com.google.firebase:protolite-well-known-types:18.0.0)
     Duplicate class com.google.protobuf.DescriptorProtos$MessageOptionsOrBuilder found in modules protobuf-javalite-4.28.0.jar -> jetified-protobuf-javalite-4.28.0 (com.google.protobuf:protobuf-javalite:4.28.0) and protolite-well-known-types-18.0.0.aar -> jetified-protolite-well-known-types-18.0.0-runtime (com.google.firebase:protolite-well-known-types:18.0.0)
     Duplicate class com.google.protobuf.DescriptorProtos$MethodDescriptorProto found in modules protobuf-javalite-4.28.0.jar -> jetified-protobuf-javalite-4.28.0 (com.google.protobuf:protobuf-javalite:4.28.0) and protolite-well-known-types-18.0.0.aar -> jetified-protolite-well-known-types-18.0.0-runtime (com.google.firebase:protolite-well-known-types:18.0.0)
     Duplicate class com.google.protobuf.DescriptorProtos$MethodDescriptorProto$Builder found in modules protobuf-javalite-4.28.0.jar -> jetified-protobuf-javalite-4.28.0 (com.google.protobuf:protobuf-javalite:4.28.0) and protolite-well-known-types-18.0.0.aar -> jetified-protolite-well-known-types-18.0.0-runtime (com.google.firebase:protolite-well-known-types:18.0.0)
     Duplicate class com.google.protobuf.DescriptorProtos$MethodDescriptorProtoOrBuilder found in modules protobuf-javalite-4.28.0.jar -> jetified-protobuf-javalite-4.28.0 (com.google.protobuf:protobuf-javalite:4.28.0) and protolite-well-known-types-18.0.0.aar -> jetified-protolite-well-known-types-18.0.0-runtime (com.google.firebase:protolite-well-known-types:18.0.0)
     Duplicate class com.google.protobuf.DescriptorProtos$MethodOptions found in modules protobuf-javalite-4.28.0.jar -> jetified-protobuf-javalite-4.28.0 (com.google.protobuf:protobuf-javalite:4.28.0) and protolite-well-known-types-18.0.0.aar -> jetified-protolite-well-known-types-18.0.0-runtime (com.google.firebase:protolite-well-known-types:18.0.0)
     Duplicate class com.google.protobuf.DescriptorProtos$MethodOptions$Builder found in modules protobuf-javalite-4.28.0.jar -> jetified-protobuf-javalite-4.28.0 (com.google.protobuf:protobuf-javalite:4.28.0) and protolite-well-known-types-18.0.0.aar -> jetified-protolite-well-known-types-18.0.0-runtime (com.google.firebase:protolite-well-known-types:18.0.0)
     Duplicate class com.google.protobuf.DescriptorProtos$MethodOptions$IdempotencyLevel found in modules protobuf-javalite-4.28.0.jar -> jetified-protobuf-javalite-4.28.0 (com.google.protobuf:protobuf-javalite:4.28.0) and protolite-well-known-types-18.0.0.aar -> jetified-protolite-well-known-types-18.0.0-runtime (com.google.firebase:protolite-well-known-types:18.0.0)
     Duplicate class com.google.protobuf.DescriptorProtos$MethodOptions$IdempotencyLevel$1 found in modules protobuf-javalite-4.28.0.jar -> jetified-protobuf-javalite-4.28.0 (com.google.protobuf:protobuf-javalite:4.28.0) and protolite-well-known-types-18.0.0.aar -> jetified-protolite-well-known-types-18.0.0-runtime (com.google.firebase:protolite-well-known-types:18.0.0)
     Duplicate class com.google.protobuf.DescriptorProtos$MethodOptions$IdempotencyLevel$IdempotencyLevelVerifier found in modules protobuf-javalite-4.28.0.jar -> jetified-protobuf-javalite-4.28.0 (com.google.protobuf:protobuf-javalite:4.28.0) and protolite-well-known-types-18.0.0.aar -> jetified-protolite-well-known-types-18.0.0-runtime (com.google.firebase:protolite-well-known-types:18.0.0)
     Duplicate class com.google.protobuf.DescriptorProtos$MethodOptionsOrBuilder found in modules protobuf-javalite-4.28.0.jar -> jetified-protobuf-javalite-4.28.0 (com.google.protobuf:protobuf-javalite:4.28.0) and protolite-well-known-types-18.0.0.aar -> jetified-protolite-well-known-types-18.0.0-runtime (com.google.firebase:protolite-well-known-types:18.0.0)
     Duplicate class com.google.protobuf.DescriptorProtos$OneofDescriptorProto found in modules protobuf-javalite-4.28.0.jar -> jetified-protobuf-javalite-4.28.0 (com.google.protobuf:protobuf-javalite:4.28.0) and protolite-well-known-types-18.0.0.aar -> jetified-protolite-well-known-types-18.0.0-runtime (com.google.firebase:protolite-well-known-types:18.0.0)
     Duplicate class com.google.protobuf.DescriptorProtos$OneofDescriptorProto$Builder found in modules protobuf-javalite-4.28.0.jar -> jetified-protobuf-javalite-4.28.0 (com.google.protobuf:protobuf-javalite:4.28.0) and protolite-well-known-types-18.0.0.aar -> jetified-protolite-well-known-types-18.0.0-runtime (com.google.firebase:protolite-well-known-types:18.0.0)
     Duplicate class com.google.protobuf.DescriptorProtos$OneofDescriptorProtoOrBuilder found in modules protobuf-javalite-4.28.0.jar -> jetified-protobuf-javalite-4.28.0 (com.google.protobuf:protobuf-javalite:4.28.0) and protolite-well-known-types-18.0.0.aar -> jetified-protolite-well-known-types-18.0.0-runtime (com.google.firebase:protolite-well-known-types:18.0.0)
     Duplicate class com.google.protobuf.DescriptorProtos$OneofOptions found in modules protobuf-javalite-4.28.0.jar -> jetified-protobuf-javalite-4.28.0 (com.google.protobuf:protobuf-javalite:4.28.0) and protolite-well-known-types-18.0.0.aar -> jetified-protolite-well-known-types-18.0.0-runtime (com.google.firebase:protolite-well-known-types:18.0.0)
     Duplicate class com.google.protobuf.DescriptorProtos$OneofOptions$Builder found in modules protobuf-javalite-4.28.0.jar -> jetified-protobuf-javalite-4.28.0 (com.google.protobuf:protobuf-javalite:4.28.0) and protolite-well-known-types-18.0.0.aar -> jetified-protolite-well-known-types-18.0.0-runtime (com.google.firebase:protolite-well-known-types:18.0.0)
     Duplicate class com.google.protobuf.DescriptorProtos$OneofOptionsOrBuilder found in modules protobuf-javalite-4.28.0.jar -> jetified-protobuf-javalite-4.28.0 (com.google.protobuf:protobuf-javalite:4.28.0) and protolite-well-known-types-18.0.0.aar -> jetified-protolite-well-known-types-18.0.0-runtime (com.google.firebase:protolite-well-known-types:18.0.0)
     Duplicate class com.google.protobuf.DescriptorProtos$ServiceDescriptorProto found in modules protobuf-javalite-4.28.0.jar -> jetified-protobuf-javalite-4.28.0 (com.google.protobuf:protobuf-javalite:4.28.0) and protolite-well-known-types-18.0.0.aar -> jetified-protolite-well-known-types-18.0.0-runtime (com.google.firebase:protolite-well-known-types:18.0.0)
     Duplicate class com.google.protobuf.DescriptorProtos$ServiceDescriptorProto$Builder found in modules protobuf-javalite-4.28.0.jar -> jetified-protobuf-javalite-4.28.0 (com.google.protobuf:protobuf-javalite:4.28.0) and protolite-well-known-types-18.0.0.aar -> jetified-protolite-well-known-types-18.0.0-runtime (com.google.firebase:protolite-well-known-types:18.0.0)
     Duplicate class com.google.protobuf.DescriptorProtos$ServiceDescriptorProtoOrBuilder found in modules protobuf-javalite-4.28.0.jar -> jetified-protobuf-javalite-4.28.0 (com.google.protobuf:protobuf-javalite:4.28.0) and protolite-well-known-types-18.0.0.aar -> jetified-protolite-well-known-types-18.0.0-runtime (com.google.firebase:protolite-well-known-types:18.0.0)
     Duplicate class com.google.protobuf.DescriptorProtos$ServiceOptions found in modules protobuf-javalite-4.28.0.jar -> jetified-protobuf-javalite-4.28.0 (com.google.protobuf:protobuf-javalite:4.28.0) and protolite-well-known-types-18.0.0.aar -> jetified-protolite-well-known-types-18.0.0-runtime (com.google.firebase:protolite-well-known-types:18.0.0)
     Duplicate class com.google.protobuf.DescriptorProtos$ServiceOptions$Builder found in modules protobuf-javalite-4.28.0.jar -> jetified-protobuf-javalite-4.28.0 (com.google.protobuf:protobuf-javalite:4.28.0) and protolite-well-known-types-18.0.0.aar -> jetified-protolite-well-known-types-18.0.0-runtime (com.google.firebase:protolite-well-known-types:18.0.0)
     Duplicate class com.google.protobuf.DescriptorProtos$ServiceOptionsOrBuilder found in modules protobuf-javalite-4.28.0.jar -> jetified-protobuf-javalite-4.28.0 (com.google.protobuf:protobuf-javalite:4.28.0) and protolite-well-known-types-18.0.0.aar -> jetified-protolite-well-known-types-18.0.0-runtime (com.google.firebase:protolite-well-known-types:18.0.0)
     Duplicate class com.google.protobuf.DescriptorProtos$SourceCodeInfo found in modules protobuf-javalite-4.28.0.jar -> jetified-protobuf-javalite-4.28.0 (com.google.protobuf:protobuf-javalite:4.28.0) and protolite-well-known-types-18.0.0.aar -> jetified-protolite-well-known-types-18.0.0-runtime (com.google.firebase:protolite-well-known-types:18.0.0)
     Duplicate class com.google.protobuf.DescriptorProtos$SourceCodeInfo$Builder found in modules protobuf-javalite-4.28.0.jar -> jetified-protobuf-javalite-4.28.0 (com.google.protobuf:protobuf-javalite:4.28.0) and protolite-well-known-types-18.0.0.aar -> jetified-protolite-well-known-types-18.0.0-runtime (com.google.firebase:protolite-well-known-types:18.0.0)
     Duplicate class com.google.protobuf.DescriptorProtos$SourceCodeInfo$Location found in modules protobuf-javalite-4.28.0.jar -> jetified-protobuf-javalite-4.28.0 (com.google.protobuf:protobuf-javalite:4.28.0) and protolite-well-known-types-18.0.0.aar -> jetified-protolite-well-known-types-18.0.0-runtime (com.google.firebase:protolite-well-known-types:18.0.0)
     Duplicate class com.google.protobuf.DescriptorProtos$SourceCodeInfo$Location$Builder found in modules protobuf-javalite-4.28.0.jar -> jetified-protobuf-javalite-4.28.0 (com.google.protobuf:protobuf-javalite:4.28.0) and protolite-well-known-types-18.0.0.aar -> jetified-protolite-well-known-types-18.0.0-runtime (com.google.firebase:protolite-well-known-types:18.0.0)
     Duplicate class com.google.protobuf.DescriptorProtos$SourceCodeInfo$LocationOrBuilder found in modules protobuf-javalite-4.28.0.jar -> jetified-protobuf-javalite-4.28.0 (com.google.protobuf:protobuf-javalite:4.28.0) and protolite-well-known-types-18.0.0.aar -> jetified-protolite-well-known-types-18.0.0-runtime (com.google.firebase:protolite-well-known-types:18.0.0)
     Duplicate class com.google.protobuf.DescriptorProtos$SourceCodeInfoOrBuilder found in modules protobuf-javalite-4.28.0.jar -> jetified-protobuf-javalite-4.28.0 (com.google.protobuf:protobuf-javalite:4.28.0) and protolite-well-known-types-18.0.0.aar -> jetified-protolite-well-known-types-18.0.0-runtime (com.google.firebase:protolite-well-known-types:18.0.0)
     Duplicate class com.google.protobuf.DescriptorProtos$UninterpretedOption found in modules protobuf-javalite-4.28.0.jar -> jetified-protobuf-javalite-4.28.0 (com.google.protobuf:protobuf-javalite:4.28.0) and protolite-well-known-types-18.0.0.aar -> jetified-protolite-well-known-types-18.0.0-runtime (com.google.firebase:protolite-well-known-types:18.0.0)
     Duplicate class com.google.protobuf.DescriptorProtos$UninterpretedOption$Builder found in modules protobuf-javalite-4.28.0.jar -> jetified-protobuf-javalite-4.28.0 (com.google.protobuf:protobuf-javalite:4.28.0) and protolite-well-known-types-18.0.0.aar -> jetified-protolite-well-known-types-18.0.0-runtime (com.google.firebase:protolite-well-known-types:18.0.0)
     Duplicate class com.google.protobuf.DescriptorProtos$UninterpretedOption$NamePart found in modules protobuf-javalite-4.28.0.jar -> jetified-protobuf-javalite-4.28.0 (com.google.protobuf:protobuf-javalite:4.28.0) and protolite-well-known-types-18.0.0.aar -> jetified-protolite-well-known-types-18.0.0-runtime (com.google.firebase:protolite-well-known-types:18.0.0)
     Duplicate class com.google.protobuf.DescriptorProtos$UninterpretedOption$NamePart$Builder found in modules protobuf-javalite-4.28.0.jar -> jetified-protobuf-javalite-4.28.0 (com.google.protobuf:protobuf-javalite:4.28.0) and protolite-well-known-types-18.0.0.aar -> jetified-protolite-well-known-types-18.0.0-runtime (com.google.firebase:protolite-well-known-types:18.0.0)
     Duplicate class com.google.protobuf.DescriptorProtos$UninterpretedOption$NamePartOrBuilder found in modules protobuf-javalite-4.28.0.jar -> jetified-protobuf-javalite-4.28.0 (com.google.protobuf:protobuf-javalite:4.28.0) and protolite-well-known-types-18.0.0.aar -> jetified-protolite-well-known-types-18.0.0-runtime (com.google.firebase:protolite-well-known-types:18.0.0)
     Duplicate class com.google.protobuf.DescriptorProtos$UninterpretedOptionOrBuilder found in modules protobuf-javalite-4.28.0.jar -> jetified-protobuf-javalite-4.28.0 (com.google.protobuf:protobuf-javalite:4.28.0) and protolite-well-known-types-18.0.0.aar -> jetified-protolite-well-known-types-18.0.0-runtime (com.google.firebase:protolite-well-known-types:18.0.0)

Make sure you include information that can help us debug (full error message, exception listing, stack trace, logs).

Anything else we should know about your project / environment

Initially I also had added the dependency:

      implementation "com.google.protobuf:protobuf-javalite:4.28.0"

But then with dependency analyzer I saw that it's part of protobuf-kotlin-lite, so I removed it. That didn't make a difference though.

I did a lot of googling around and seems like this is a quite common issue, unfortunately none of the proposed solutions (such as excluding certain artifacts from firebase) worked for me. They did result in different errors, but the project still didn't build. However, even if any of these solutions worked for building the project, my understanding is that firebase artifacts won't work properly, so I can't really consider these solutions seriously.

I also tried to replace implementation with protobuf and then I'm getting this error:

Execution failed for task ':core:generateDebugProto'.
> protoc: stdout: . stderr: src/google/protobuf/any.proto:158:10: "google.protobuf.Any.type_url" is already defined in file "google/protobuf/any.proto".
  src/google/protobuf/any.proto:161:9: "google.protobuf.Any.value" is already defined in file "google/protobuf/any.proto".
  src/google/protobuf/any.proto:128:9: "google.protobuf.Any" is already defined in file "google/protobuf/any.proto".

Couldn't figure out how to move forward from here, so as a last resort I decided to try older versions of protobuf and seems like v4.26.1 is the latest one that just works, without having to do any workarounds. v4.27.0 and higher cause the errors listed above.

Is there anything that could be done in order to use the latest protobuf version (at the time of writing, 4.28.0) without breaking firebase functionality?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions