You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android项目集成Google Cloud TTS遇类重复冲突求解决方案

解决Google Cloud TTS集成Android的类重复冲突问题

核心原因

Google Cloud TTS SDK依赖的Protobuf库版本,与Android项目中其他Google服务(如Firebase、Google Play Services)引入的Protobuf版本不一致,导致类重复打包引发冲突。

可行解决方法

1. 强制统一Protobuf版本

在项目根目录的build.gradle中配置版本强制策略,让所有依赖使用同一版本的Protobuf相关库:

allprojects {
    repositories {
        // 保留你的仓库配置(如mavenCentral、google等)
    }
    configurations.all {
        resolutionStrategy {
            // 选择与项目中其他Google服务兼容的版本,示例版本可根据实际调整
            force 'com.google.protobuf:protobuf-java:3.21.12'
            force 'com.google.protobuf:protobuf-javalite:3.21.12'
            force 'com.google.api.grpc:proto-google-common-protos:2.19.0'
        }
    }
}

2. 优化Packaging Options

在模块的build.gradle中扩展打包配置,优先选择重复类的单一版本:

android {
    // 保留原有配置
    packagingOptions {
        exclude 'META-INF/LICENSE'
        exclude 'META-INF/INDEX.LIST'
        exclude 'META-INF/DEPENDENCIES'
        // 处理重复的Protobuf及Google公共类
        pickFirst '**/protobuf/*.class'
        pickFirst '**/google/**/*.class'
    }
}

3. 替换为Android适配的依赖组合

避免直接使用Java版SDK的完整依赖,改用更适配Android的grpc组合:

dependencies {
    implementation 'com.google.cloud:google-cloud-texttospeech:2.28.0'
    // 补充Android专用的grpc依赖
    implementation 'io.grpc:grpc-android:1.59.0'
    implementation 'io.grpc:grpc-protobuf-lite:1.59.0'
}

4. 定位冲突源

执行Gradle命令生成依赖树,精准找到引入重复类的第三方库:

./gradlew app:dependencies

在输出中查找protobuf-java、protobuf-javalite、proto-google-common-protos的所有引用,然后针对性排除冲突模块。

额外提示

若官方示例项目无法构建,先核对本地Gradle版本、Android Gradle Plugin版本是否与示例要求一致,优先使用示例指定的环境版本避免兼容性问题。

内容的提问来源于stack exchange,提问作者Konstantin Konopko

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 19:32:09