Ошибка «Дубликат класса com.google.protobuf.AbstractMessageLite» при сборке grpc в android kotlinAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Ошибка «Дубликат класса com.google.protobuf.AbstractMessageLite» при сборке grpc в android kotlin

Сообщение Anonymous »

Я начинаю работу с grpc + kotlin (android). Я пытаюсь создать простое приложение HelloWorld, но при попытке создать приложение получаю следующую ошибку:

Вызвано: java.lang.RuntimeException: Duplication class com .google.protobuf.AbstractMessageLite найден в модулях protobuf-java-3.25.3.jar -> protobuf-java-3.25.3 (com.google.protobuf:protobuf-java:3.25.3) и protobuf-javalite-3.25.5.jar -> protobuf-javalite-3.25.5 (com.google.protobuf:protobuf-javalite:3.25.5)< /p>

Мое приложение build.gradle:

Код: Выделить всё

import com.google.protobuf.gradle.*

plugins {
id("com.android.application")
id("com.google.protobuf")
id("org.jetbrains.kotlin.android")
}

android {
compileSdk = 35

defaultConfig {
minSdk = 24
targetSdk = 35
versionCode = 1
versionName = "1.0"

testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
vectorDrawables {
useSupportLibrary = true
}
}

buildTypes {
release {
isMinifyEnabled = false
proguardFiles(
getDefaultProguardFile("proguard-android-optimize.txt"),
"proguard-rules.pro"
)
}
}
compileOptions {
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
}
kotlinOptions {
jvmTarget = "1.8"
}
buildFeatures {
compose = true
}
composeOptions {
kotlinCompilerExtensionVersion = "1.5.13"
}
packaging {
resources {
excludes += "/META-INF/{AL2.0,LGPL2.1}"
}
}
}

protobuf {
protoc {
artifact = "com.google.protobuf:protoc:4.29.0"
}
plugins {
id("java") {
artifact = "io.grpc:protoc-gen-grpc-java:1.69.0"
}
id("grpc") {
artifact = "io.grpc:protoc-gen-grpc-java:1.69.0"
}
id("grpckt") {
artifact = "io.grpc:protoc-gen-grpc-kotlin:1.4.1:jdk8@jar"
}
}
generateProtoTasks {
all().forEach {
it.plugins {
id("java") {
option("lite")
}
id("grpc") {
option("lite")
}
id("grpckt") {
option("lite")
}
}
it.builtins {
id("kotlin")  {
option("lite")
}
}
}
}
}

dependencies {

implementation("androidx.core:core-ktx:1.15.0")
implementation("androidx.lifecycle:lifecycle-runtime-ktx:2.8.7")
implementation("androidx.activity:activity-compose:1.9.3")
implementation(platform("androidx.compose:compose-bom:2024.12.01"))
implementation("androidx.compose.ui:ui")
implementation("androidx.compose.ui:ui-graphics")
implementation("androidx.compose.ui:ui-tooling-preview")
implementation("androidx.compose.material3:material3")

implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.8.0")
implementation("com.google.protobuf:protobuf-kotlin:3.25.3")
implementation("io.grpc:grpc-stub:1.69.0")
implementation("io.grpc:grpc-protobuf:1.62.2")
implementation("io.grpc:grpc-okhttp:1.69.0")

implementation("com.google.protobuf:protobuf-kotlin:3.25.3")
implementation("io.grpc:grpc-kotlin-stub:1.4.1")
implementation("io.grpc:grpc-protobuf-lite:1.69.0")

testImplementation("junit:junit:4.13.2")
androidTestImplementation("androidx.test.ext:junit:1.2.1")
androidTestImplementation("androidx.test.espresso:espresso-core:3.6.1")
androidTestImplementation(platform("androidx.compose:compose-bom:2024.12.01"))
androidTestImplementation("androidx.compose.ui:ui-test-junit4")
debugImplementation("androidx.compose.ui:ui-tooling")
debugImplementation("androidx.compose.ui:ui-test-manifest")
}
Build.gradle моего проекта:

Код: Выделить всё

// Top-level build file where you can add configuration options common to all sub-projects/modules.
plugins {
id("com.android.application") version "8.7.3" apply false
id("com.google.protobuf") version "0.9.4" apply false
id("org.jetbrains.kotlin.android") version "1.9.23" apply false
}

buildscript {
dependencies {
classpath("com.google.protobuf:protobuf-gradle-plugin:0.9.4")
}
}
Я пробовал использовать несколько ссылок, например: Но не повезло!

Подробнее здесь: https://stackoverflow.com/questions/793 ... uilding-gr
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»