Я получаю следующее исключение NullPointerException при попытке распечатать буфер протокола:
Exception in thread "main" java.lang.NullPointerException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.google.protobuf.GeneratedMessage.invokeOrDie(GeneratedMessage.java:895)
at com.google.protobuf.GeneratedMessage.access$1400(GeneratedMessage.java:55)
at com.google.protobuf.GeneratedMessage$FieldAccessorTable$SingularEnumFieldAccessor.get(GeneratedMessage.java:1145)
at com.google.protobuf.GeneratedMessage.getField(GeneratedMessage.java:127)
at com.google.protobuf.GeneratedMessage.getAllFieldsMutable(GeneratedMessage.java:84)
at com.google.protobuf.GeneratedMessage.getAllFields(GeneratedMessage.java:119)
at com.google.protobuf.TextFormat.print(TextFormat.java:109)
at com.google.protobuf.TextFormat.print(TextFormat.java:64)
at com.google.protobuf.TextFormat.printToString(TextFormat.java:81)
at com.google.protobuf.AbstractMessage.toString(AbstractMessage.java:82)
at java.lang.String.valueOf(String.java:2826)
at java.io.PrintStream.println(PrintStream.java:771)
Все, что я делаю, это распечатываю буфер протокола, это буквально:
NameOfProtocolBuffer.Builder a = NameOfProtocolBuffer.newBuilder();
// Set some fields....
NameOfProtocolBuffer b = a.build();
System.out.println(b); // etc.
Все поля буфера протокола либо необязательны, либо повторяются.
Спасибо за любую помощь!