Protobuf android:迁移到AndroidX:找不到符号类EnumVerifier

时间:2019-10-04 07:52:48

标签: java android protocol-buffers androidx

我正在将现有项目迁移到AndroidX。

当我尝试运行该应用程序时,我从“ com.google.protobuf.Internal.java”中收到“错误:找不到符号类EnumVerifier”。 因此,我签入了自动生成的文件“ Internal.java”,并且在那里缺少“ EnumVerifier”。

以下是我的gradle设置:

protobuf {
protoc {
artifact = 'com.google.protobuf:protoc:3.8.0'
}
generateProtoTasks {
all().each { task ->
task.builtins {
java {
option "lite"
}}}}}

dependancy {
implementation 'com.google.protobuf:protobuf-javalite:3.8.0'
}

//Android level gradle
dependancy {
classpath 'com.google.protobuf:protobuf-gradle-plugin:0.8.10'
}

谢谢。

2 个答案:

答案 0 :(得分:1)

我遇到了同样的错误,在我的情况下,问题是“精简版”,我将implementation 'io.grpc:grpc-protobuf-lite:1.25.0'替换为implementation 'io.grpc:grpc-protobuf:1.25.0',它可以编译并正确部署。

答案 1 :(得分:0)

我遇到了同样的问题,因为我使用的是protobuf-lite(最后更新于2016年)而不是protobuf-javalite。并非每个人都希望/需要 grpc 依赖项(Andres回答)。

使用此:

implementation 'com.google.protobuf:protobuf-javalite:3.13.0'