Android项目gRPC生成的Kotlin代码出现未解析引用错误如何解决
解决方案
1. 补全缺失依赖
编译报错核心原因是缺失gRPC Kotlin运行时、Protobuf Lite运行时依赖,在app模块build.gradle的dependencies代码块中添加以下依赖即可:
// Protobuf Lite运行时,版本需与使用的protoc版本保持一致 implementation "com.google.protobuf:protobuf-javalite:3.17.2" // gRPC Kotlin运行时Stub,版本需与protoc-gen-grpc-kotlin版本保持一致 implementation "io.grpc:grpc-kotlin-stub:1.1.0" // 若仍存在协程相关未引用报错,补充对应协程核心依赖 implementation "org.jetbrains.kotlinx:kotlinx-coroutines-core:1.5.0"
2. 修正SourceSets配置
将原有sourceSets配置替换为以下内容,确保生成的Java、Kotlin Proto代码都被纳入编译路径:
sourceSets { main { java.srcDirs += 'build/generated/source/proto/main/grpckt' java.srcDirs += 'build/generated/source/proto/main/javalite' java.srcDirs += 'build/generated/source/proto/main/grpc' } }
3. 清理缓存重新构建
执行以下操作后重新编译即可:
- 点击Android Studio的
File -> Invalidate Caches / Restart清理IDE缓存 - 执行
Build -> Clean Project后再执行Build -> Rebuild Project
内容的提问来源于stack exchange,提问作者MSpeed
相关产品推荐
相关产品推荐

