2016-10-21 3 views
1

Ich versuche, den Inhalt einer protobuf Nachricht in meinem Android App für debuging puprose zu recht zu drucken, aber wenn ich .toString() auf einer Nachricht nennen das ist, was ich bekommen:Android protobuf-lite toString nicht funktioniert

Anfrage ist ein # AECA $ @ 7baa4

Wie kann ich den Inhalt einer Nachricht drucken?

Antwort

1

protobuf-lite unterstützt toString() nicht. Es kann nicht, weil TextFormat protobuf Reflexion und Deskriptoren, die genau die Funktionen sind, die im Lite-Modus weggelassen werden. Sie müssen gegen normale (nicht lite) protobufs bauen, damit dies funktioniert.

+1

Ich habe versucht, so in Android, aber ich kann es nicht schaffen, das Projekt zu bauen. Ich benutze den Standardprobob-java, den es beschwert "fehlt protoc: stdout:. stderr: Fehlende Ausgabe-Direktiven. Könnten Sie mir ein funktionierendes Beispiel für Android mit der Nicht-Lite-Version zeigen? – Johny19

+1

https://github.com/yurifariasg/ android-google-read-sample ithink sein protobut 2, nano, android, es ist ein viel größerer Build, so dass Sie wahrscheinlich sehen müssen, "multidex" revs zu dem Projekt, um einen guten Build –

+1

@ Johny19 Sorry, ich nicht Erfahrung mit Protobuf auf Android.Ein anderer Ansatz, den Sie vielleicht ausprobieren möchten, besteht darin, den kodierten Protobuf in eine Datei zu schreiben und dann 'protok --decode' zu ​​verwenden, um sie zu lesen.Sie müssen dann nicht ändern, wie Ihre App ist –

Verwandte Themen