Android protobuf-lite toString不起作用

时间:2016-10-21 17:46:32

标签: android protocol-buffers tostring pretty-print

我正在尝试在我的Android应用程序中打印protobuf消息的内容以调试puprose,但是当我在消息上调用.toString()时,这就是我得到的:

  

请求是#a.e.c.a$a@7baa4

如何打印讯息内容?

2 个答案:

答案 0 :(得分:1)

protobuf-lite不支持toString()。它不能,因为TextFormat依赖于protobuf反射和描述符,这正是lite模式中省略的特征。您需要构建常规(非精简)protobuf才能使其正常工作。

答案 1 :(得分:0)

我使用proguard规则解决了这个问题。 GeneratedMessageLite类重写toString方法。该方法使用getset以及has方法。所以我将这个方法添加到proguard规则

# for toString debug
-keepclassmembers class * extends com.google.protobuf.GeneratedMessageLite {
  *** get*();
  *** set*(***);
  *** has*();
}