首先,是的,我读过这个线程Protobuf-Missing toByteArray()?,这并没有解决我的问题。
我按照这里描述的这个确切步骤安装了原型:https://gist.github.com/sofyanhadia/37787e5ed098c97919b8c593f0ec44d8.
我的原型文件非常简单:
syntax = "proto3";
package com.mypackage.protobuf;
message MensajeSMS {
string telefono = 1;
string mensaje = 2;
}
我转到我的proto路径,并使用以下方法对其进行proto编译:
protoc --java_out=/home/myhome/myproject/myprotoclass/ MensajeSMS.proto
该类确实是创建的,它有几个方法,但不是这里指定的所有方法:https://developers.google.com/protocol-buffers/docs/reference/java/com/google/protobuf/MessageLite
就像有些人说的那样:
“toByteArray()方法当然存在,因为它是在消息接口中为所有消息类型定义的:https://developers.google.com/protocol-buffers/docs/reference/java/com/google/protobuf/MessageLite.html"
这里说:https://github.com/google/protobuf/issues/2643
所以,我显然做错了什么。如何使用toByteArray方法生成我的类?
编辑
以下是代码:
MensajeSMS xxx = MensajeSMS.newBuilder()
.setTelefono(mensajeSMS.getTelefono())
.setMensaje(mensajeSMS.getMensaje())
.build();
byte[] mybyte = xxx.toByteArray(); //Here I get cannot resolve method
所以,我找到了答案,它与代码无关。确实需要更多的数据,我认为我所做的一切都不相关。
问题是我将我的项目编译成一个jar并在另一个项目中使用它,但是我使用
./gradlew build
而不是
./gradlew buidl fatJar
这就是我需要在我的jar中包含所有依赖项的地方。
我只是希望这能帮助其他人。我的错。
问题内容: 我可能只是弄乱了原始文件中的内容,但似乎无法调用toByteArray函数。 使用Java,proto文件是使用protoc编译的。 我在说… 并且BaseMessage被声明为… 也许我缺少东西… BaseMessage扩展了GeneratedMessage,它继承了其中toByteArray是公共的AbstractMessageLite的 toByteArray(),所以我应该能够
我正在尝试实施gRPC,现在我遇到了各种各样的问题,但我就是不明白我做错了什么。我遵循这个文档:https://github.com/grpc/grpc-java/blob/master/README.md 现在,当我试图构建我的项目时,我总是会遇到这样的错误 在我的Android Studio外部库中,我有Pro buf-java-3.12.1 jar。 在我的project gradle文件中
本文向大家介绍Java ByteArrayOutputStream toByteArray()方法(带示例),包括了Java ByteArrayOutputStream toByteArray()方法(带示例)的使用技巧和注意事项,需要的朋友参考一下 ByteArrayOutputStream类方法 toByteArray()方法在java.io包中可用。 toByteArray()方法用于实例化
我正在尝试编写一个apex类,当特定日期与今天的日期相差不到30天时,它会在自定义对象上检查chekbox。该课程应该每周运行一次,以不断检查应该更新的记录。我对Apex一无所知,我的代码是由我在其他线程中发现的各种snipped组成的。我想我几乎就知道了,但它一直显示以下错误消息:方法不存在或签名不正确:CustomersDateCheck类型中的void DateCheck()。 有人能帮我一
我正在android实现中使用grpc和protobuf lite。但是protobuf lite没有谷歌时间戳,而我的protos有导入“google/protobuf/timestamp.proto”。所以我将实现'com.google.protobuf:protobuf-java:3.7.1'添加到包含google时间戳的gradle中。但在此之后,代码编译会出现错误。例如:在模块proto
下面是一个示例项目:http://cl.ly/3N2u2i1S441M 我在一个UITableViewCell超类中,因为当子类被初始化时,我调用super。init()。在子类和超类的init的底部,我调用了一个方法,调用styleCell,对其应用样式。该方法来自于它们都符合的协议,其中一个隐式符合,因为它是子类,并且覆盖了该方法。 在超类'的末尾,调用该样式方法,但它调用子类'方法,而不是它