错误:Builder类中的方法parseUnknownField

问题描述 投票:0回答:2

作为一名实习生,我的任务是开发 MyTracks 应用程序。我目前正在处理我找到的源代码here..当我将代码导入到android studio时,我在Sensor.java上遇到了3个错误——一个包含此语句的类

//由protocol buffer编译器生成。请勿编辑! // 来源:proto/sensor.proto

这些是 ff 错误:

  1. 错误:Builder 类中的方法 parseUnknownField 无法应用于给定类型; 必需:CodedInputStream、CodedOutputStream、ExtensionRegistryLite、int 找到:CodedInputStream、ExtensionRegistryLite、int 原因:实际参数列表和正式参数列表的长度不同 其中 MessageType、BuilderType 是类型变量: MessageType 扩展了类 Builder 中声明的GenerateMessageLite BuilderType 扩展了 Builder 类中声明的 Builder

  2. 错误:Builder 类中的方法 parseUnknownField 无法应用于给定类型; 必需:CodedInputStream、CodedOutputStream、ExtensionRegistryLite、int 找到:CodedInputStream、ExtensionRegistryLite、int 原因:实际参数列表和正式参数列表的长度不同 其中 MessageType、BuilderType 是类型变量: MessageType 扩展了类 Builder 中声明的GenerateMessageLite BuilderType 扩展了 Builder 类中声明的 Builder

  3. 错误:任务“:myTracksLib:compileReleaseJavaWithJavac”执行失败。

    编译失败;有关详细信息,请参阅编译器错误输出。

我希望你们能帮我解决这个问题,因为我迫切需要解决这个问题。感谢您提供的任何帮助。

android protocol-buffers
2个回答
4
投票

很可能,生成

protoc
Sensor.java
(protobuf 代码生成器工具)版本与您尝试编译的
libprotobuf.jar
版本不同。这两个东西必须是完全相同的版本。您需要使用与您的
Sensor.java
匹配的
protoc
版本重新生成
libprotobuf.jar
,或者需要找到与生成
libprotobuf.jar
protoc
相匹配的
Sensor.java
版本。


0
投票

只需使用这个版本,它对我有用:

<dependency>
        <groupId>com.google.protobuf</groupId>
        <artifactId>protobuf-java</artifactId>
        <version>3.21.7</version>
    </dependency>
© www.soinside.com 2019 - 2024. All rights reserved.