mobfishgmbh / Cardboard-VR-Unity-SDK

Apache License 2.0
56 stars 11 forks source link

[Android] - Remove Cardboard/Plugins/GoogleProtoBuf.dll error script CardboardDevice.cs #85

Closed imkrystal closed 3 years ago

imkrystal commented 3 years ago

Hi mobfish VR STUDIO.

In "https://github.com/mobfishgmbh/Cardboard-VR-Unity-SDK/wiki/Usage" and have this line: _"If you already uses Google's protocol buffer in your project, you can remove Cardboard/Plugins/GoogleProtoBuf.dll, because a conflict may exist when two same dll exists."

When I remove "Cardboard/Plugins/GoogleProtoBuf.dll", script CardboardDevice.cs will be error. image

In CardboardDevice.cs script: image

Thank you so much.

Best Regards!

cdytoby commented 3 years ago

It seems that the Protocol Buffer in Google AR Core Unity Package is using a different version of Protocol Buffer, that doesn't contain some of the methods.

Protocol Buffer documentation:

https://developers.google.com/protocol-buffers/docs/proto3#options

The "option optimize_for" may be the culprit. Investigate, and recompile proto file to c#.

imkrystal commented 3 years ago

Thank you for your answer.

I' m sorry for the late response. Do you know how can I check version of Protocol Buffer?

cdytoby commented 3 years ago

Both our Protocol Buffer dll and the one from AR Core don't have version in their dlls.

https://www.nuget.org/packages/Google.Protobuf/

Official Protocol Buffer can be retrieved from this nuget package.

Max version that is useable is 3.12.4 with the .Net Standard 1.0 variant, this is the latest one which doesn't have issue.

Any version above has reference to System.Memory which requires extra download.

Also, "option optimize_for" is not the culprit for the issue. The function GeneratedClrTypeInfo is generated anyway, and it has different parameters in different protocol buffer versions, which leads incompatible.

Document is needed. Also, I may need to update this protocol buffer, in order to let user get the dll version in OS.

imkrystal commented 3 years ago

Thank you for your answer.

I' m sorry for the late response.

Currently, I'm using 3.12.4 as you said. No error code and build without error.

Thank you so much. Maybe I will close this topic.

Thanks & Best Regards,