2016-10-21 1 views
1

J'essaie de enluminer le contenu d'un message protobuf dans mon application Android pour debug puprose mais quand je l'appelle .toString() sur un message c'est ce que je reçois:Android protobuf-lite toString ne fonctionne pas

demande est # AECA $ par @ 7baa4

Comment puis-je imprimer le contenu d'un message?

Répondre

1

protobuf-lite ne prend pas en charge toString(). Il ne peut pas, car TextFormat repose sur la réflexion et les descripteurs protobuf, qui sont exactement les caractéristiques qui sont omises en mode lite. Vous aurez besoin de construire contre des protobufs réguliers (non-lites) pour que cela fonctionne.

+1

J'ai essayé de le faire sous Android mais je n'arrive pas à construire le projet. j'utilise le standar protobuf-java qu'il se plaint "manquant protoc: stdout :. stderr: Directives manquantes de sortie .Pourriez-vous me montrer un exemple de travail pour android en utilisant la version non-lite? – Johny19

+1

https://github.com/yurifariasg/ android-google-speech-sample ithink son protobut 2, nano, android, c'est un build beaucoup plus grand donc vous aurez probablement besoin de regarder les tours 'multidex' au projet pour obtenir une bonne compilation –

+1

@ Johny19 Désolé, je ne sais pas Personnellement, vous pouvez utiliser Protobuf sur Android.Une approche différente que vous pourriez vouloir essayer est de vider le protobuf encodé dans un fichier, puis utiliser 'protoc --decode' pour le lire.Vous n'avez donc pas besoin de changer la façon dont vous appl –