Also does it matter if .pb was created using proto lite and android end.

I believe the lite version doesn't store fields, so converting it to json
using proto-util won't work and i need to make use of reflection.

On Fri, 24 Feb, 2023, 6:54 am ritesh singh, <[email protected]> wrote:

> Thanks Adam. I will give it a shot. I thought of using *protoc*
> compiler, but what if my proto file contains nested messages
>
>
>
>
> *message A {  B b = 1}*
> *message B {*
> *}*
>
>
> After running *protoc *on the proto file, it will generate 2 java
> classes. I won't know which generated class to use against my .pb file, as
> my plugin is only aware of .pb and .proto file.
>
> Please correct me, if am wrong.
> On Friday, February 24, 2023 at 6:42:05 AM UTC+5:30 Adam Cozzette wrote:
>
>> I suspect that your code is getting an error because it's trying to parse
>> a .proto file as a serialized protocol buffer. (This won't work since
>> .proto files use a text representation very different from the standard
>> protobuf binary format.) Probably the best way to fix this problem would be
>> to invoke protoc with --descriptor_set_out to parse the proto file and
>> convert it into a serialized FileDescriptorSet. A FileDescriptorSet is just
>> a protocol buffer, so once you have it in that form you can easily parse it
>> like you would parse any other serialized proto.
>>
>> On Thu, Feb 23, 2023 at 4:59 PM ritesh singh <[email protected]> wrote:
>>
>>> Hello,
>>>
>>> I am working on creating a Android Studio plugin for proto data store.
>>> Android uses proto-lite, my current approach, i get the .pb file and
>>> .proto file and use the same in intellij plugin to deserialise it.
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>> *val psiFile = PsiManager.getInstance(project).findFile(protoFile) val
>>> protoFileContent = psiFile!!.text val fileDescriptorProto:
>>> DescriptorProtos.FileDescriptorProto =
>>> DescriptorProtos.FileDescriptorProto.parseFrom(protoFileContent.byteInputStream())
>>> val fileDescriptor =
>>> Descriptors.FileDescriptor.buildFrom(fileDescriptorProto, arrayOfNulls(0))
>>> val messageDescriptor = fileDescriptor.messageTypes[0] val buffer =
>>> pbFile.contentsToByteArray() val messageBuilder: DynamicMessage.Builder =
>>> DynamicMessage.newBuilder(messageDescriptor)
>>> messageBuilder.mergeFrom(buffer) val message = messageBuilder.build() val
>>> text: String = TextFormat.printToString(message)*
>>>
>>> Above code is throwing error in parsing step,* Protocol message tag had
>>> invalid wire type.*
>>>
>>> Thanks in advance.
>>>
>>> --
>>> You received this message because you are subscribed to the Google
>>> Groups "Protocol Buffers" group.
>>> To unsubscribe from this group and stop receiving emails from it, send
>>> an email to [email protected].
>>> To view this discussion on the web visit
>>> https://groups.google.com/d/msgid/protobuf/7fe3a019-e846-4792-8d8a-1655a2d93975n%40googlegroups.com
>>> <https://groups.google.com/d/msgid/protobuf/7fe3a019-e846-4792-8d8a-1655a2d93975n%40googlegroups.com?utm_medium=email&utm_source=footer>
>>> .
>>>
>> --
> You received this message because you are subscribed to the Google Groups
> "Protocol Buffers" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/protobuf/5042e4c5-2643-4587-812a-730206f14424n%40googlegroups.com
> <https://groups.google.com/d/msgid/protobuf/5042e4c5-2643-4587-812a-730206f14424n%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>

-- 
You received this message because you are subscribed to the Google Groups 
"Protocol Buffers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/protobuf/CABaCSzEG%2B19VhXjsYJpphbxA%2B3s7mAmUSiDF_Kmkkr5_Y0A%3Dsg%40mail.gmail.com.

Reply via email to