Can't build with Visual Studio - ARDK Unity SDK

Include the following details while filing a bug report (edit as applicable):

  • Issue category: Developer Tools
  • Device type & OS version: Windows 10
  • Host machine & OS version: Windows
  • Issue Environment : Unity Editor
  • Xcode version: Not applicable
  • ARDK version: 2.5.1
  • Unity version: 2021.3.8f1

Bug reproduction steps:

1- Import ARDK SDK in your Unity project
2- Can’t build with Visual Studio (getting 295 errors)

This seems to also prevent us from debugging in Xcode properly, where the debugger breaks at each of those 295 errors.

I found some related issue I believe:

Here’s another one:

I’m surprised that this issue wasn’t resolved already since both tickets are using older ARDK versions. I’m using 2.5.1 which is quite recent.

I tried attaching the errors I’m seeing but I can’t attach a file yet apparently.

Here’s some of the errors :

Severity Code Description Project File Line Suppression State
Error CS0115 ‘AsyncFileUploadCompleteOutProto.GetHashCode()’: no suitable method found to override ARDK E:\Portal\Unity\AxioAR-app\Assets\ARDK\Generated\titanPoiManagement.cs 7214 Active
Error CS0246 The type or namespace name ‘Google’ could not be found (are you missing a using directive or an assembly reference?) ARDK E:\Portal\Unity\AxioAR-app\Assets\ARDK\AR\Scanning\SavedScan.cs 9 Active
Error CS0246 The type or namespace name ‘Google’ could not be found (are you missing a using directive or an assembly reference?) ARDK E:\Portal\Unity\AxioAR-app\Assets\ARDK\AR\Scanning\ScanStore.cs 12 Active
Error CS1061 ‘PoiVideoSubmissionMetadataProto’ does not contain a definition for ‘ToByteArray’ and no accessible extension method ‘ToByteArray’ accepting a first argument of type ‘PoiVideoSubmissionMetadataProto’ could be found (are you missing a using directive or an assembly reference?) ARDK E:\Portal\Unity\AxioAR-app\Assets\ARDK\AR\Scanning\ScanStore.cs 242 Active
Error CS0428 Cannot convert method group ‘Count’ to non-delegate type ‘int’. Did you intend to invoke the method? ARDK E:\Portal\Unity\AxioAR-app\Assets\ARDK\AR\Scanning\ScanStore.cs 279 Active
Error CS1061 ‘GetGrapeshotUploadUrlProto’ does not contain a definition for ‘ToByteArray’ and no accessible extension method ‘ToByteArray’ accepting a first argument of type ‘GetGrapeshotUploadUrlProto’ could be found (are you missing a using directive or an assembly reference?) ARDK E:\Portal\Unity\AxioAR-app\Assets\ARDK\AR\Scanning\ScanStore.cs 281 Active
Error CS1061 ‘AsyncFileUploadCompleteProto’ does not contain a definition for ‘ToByteArray’ and no accessible extension method ‘ToByteArray’ accepting a first argument of type ‘AsyncFileUploadCompleteProto’ could be found (are you missing a using directive or an assembly reference?) ARDK E:\Portal\Unity\AxioAR-app\Assets\ARDK\AR\Scanning\ScanStore.cs 361 Active
Error CS0246 The type or namespace name ‘Google’ could not be found (are you missing a using directive or an assembly reference?) ARDK E:\Portal\Unity\AxioAR-app\Assets\ARDK\Configuration\Metadata_ArdkMetadataConfigExtension.cs 6 Active
Error CS0103 The name ‘JsonFormatter’ does not exist in the current context ARDK E:\Portal\Unity\AxioAR-app\Assets\ARDK\Configuration\Metadata_ArdkMetadataConfigExtension.cs 30 Active
Error CS0103 The name ‘JsonFormatter’ does not exist in the current context ARDK E:\Portal\Unity\AxioAR-app\Assets\ARDK\Configuration\Metadata_ArdkMetadataConfigExtension.cs 43 Active
Error CS0103 The name ‘JsonFormatter’ does not exist in the current context ARDK E:\Portal\Unity\AxioAR-app\Assets\ARDK\Configuration\Metadata_ArdkMetadataConfigExtension.cs 119 Active
Error CS0400 The type or namespace name ‘Google’ could not be found in the global namespace (are you missing an assembly reference?) ARDK E:\Portal\Unity\AxioAR-app\Assets\ARDK\Generated\ArClientEnvelope.cs 6 Active
Error CS0400 The type or namespace name ‘Google’ could not be found in the global namespace (are you missing an assembly reference?) ARDK E:\Portal\Unity\AxioAR-app\Assets\ARDK\Generated\ArClientEnvelope.cs 7 Active
Error CS0400 The type or namespace name ‘Google’ could not be found in the global namespace (are you missing an assembly reference?) ARDK E:\Portal\Unity\AxioAR-app\Assets\ARDK\Generated\ArClientEnvelope.cs 8 Active
Error CS0538 ‘Google.Protobuf.IMessage’ in explicit interface declaration is not an interface ARDK E:\Portal\Unity\AxioAR-app\Assets\ARDK\Generated\ArClientEnvelope.cs 53 Active
Error CS0115 ‘ARClientEnvelope.Equals(object)’: no suitable method found to override ARDK E:\Portal\Unity\AxioAR-app\Assets\ARDK\Generated\ArClientEnvelope.cs 86 Active
Error CS0115 ‘ARClientEnvelope.GetHashCode()’: no suitable method found to override ARDK E:\Portal\Unity\AxioAR-app\Assets\ARDK\Generated\ArClientEnvelope.cs 103 Active
Error CS0115 ‘ARClientEnvelope.ToString()’: no suitable method found to override ARDK E:\Portal\Unity\AxioAR-app\Assets\ARDK\Generated\ArClientEnvelope.cs 110 Active
Error CS0400 The type or namespace name ‘Google’ could not be found in the global namespace (are you missing an assembly reference?) ARDK E:\Portal\Unity\AxioAR-app\Assets\ARDK\Generated\ArCommonMetadata.cs 6 Active
Error CS0400 The type or namespace name ‘Google’ could not be found in the global namespace (are you missing an assembly reference?) ARDK E:\Portal\Unity\AxioAR-app\Assets\ARDK\Generated\ArCommonMetadata.cs 7 Active
Error CS0400 The type or namespace name ‘Google’ could not be found in the global namespace (are you missing an assembly reference?) ARDK E:\Portal\Unity\AxioAR-app\Assets\ARDK\Generated\ArCommonMetadata.cs 8 Active
Error CS0538 ‘Google.Protobuf.IMessage’ in explicit interface declaration is not an interface ARDK E:\Portal\Unity\AxioAR-app\Assets\ARDK\Generated\ArCommonMetadata.cs 56 Active
Error CS0115 ‘ARCommonMetadata.Equals(object)’: no suitable method found to override ARDK E:\Portal\Unity\AxioAR-app\Assets\ARDK\Generated\ArCommonMetadata.cs 227 Active
Error CS0115 ‘ARCommonMetadata.GetHashCode()’: no suitable method found to override ARDK E:\Portal\Unity\AxioAR-app\Assets\ARDK\Generated\ArCommonMetadata.cs 253 Active
Error CS0115 ‘ARCommonMetadata.ToString()’: no suitable method found to override ARDK E:\Portal\Unity\AxioAR-app\Assets\ARDK\Generated\ArCommonMetadata.cs 269 Active
Error CS0400 The type or namespace name ‘Google’ could not be found in the global namespace (are you missing an assembly reference?) ARDK E:\Portal\Unity\AxioAR-app\Assets\ARDK\Generated\ArdkTelemetry.cs 6 Active
Error CS0400 The type or namespace name ‘Google’ could not be found in the global namespace (are you missing an assembly reference?) ARDK E:\Portal\Unity\AxioAR-app\Assets\ARDK\Generated\ArdkTelemetry.cs 7 Active
Error CS0400 The type or namespace name ‘Google’ could not be found in the global namespace (are you missing an assembly reference?) ARDK E:\Portal\Unity\AxioAR-app\Assets\ARDK\Generated\ArdkTelemetry.cs 8 Active
Error CS0538 ‘Google.Protobuf.IMessage’ in explicit interface declaration is not an interface ARDK E:\Portal\Unity\AxioAR-app\Assets\ARDK\Generated\ArdkTelemetry.cs 149 Active
Error CS0115 ‘ARDKTelemetryOmniProto.Equals(object)’: no suitable method found to override ARDK E:\Portal\Unity\AxioAR-app\Assets\ARDK\Generated\ArdkTelemetry.cs 475 Active
Error CS0115 ‘ARDKTelemetryOmniProto.GetHashCode()’: no suitable method found to override ARDK E:\Portal\Unity\AxioAR-app\Assets\ARDK\Generated\ArdkTelemetry.cs 511 Active
Error CS0115 ‘ARDKTelemetryOmniProto.ToString()’: no suitable method found to override ARDK E:\Portal\Unity\AxioAR-app\Assets\ARDK\Generated\ArdkTelemetry.cs 537 Active
Error CS0538 ‘Google.Protobuf.IMessage’ in explicit interface declaration is not an interface ARDK E:\Portal\Unity\AxioAR-app\Assets\ARDK\Generated\ArdkTelemetry.cs 940 Active
Error CS0115 ‘InitializationEvent.Equals(object)’: no suitable method found to override ARDK E:\Portal\Unity\AxioAR-app\Assets\ARDK\Generated\ArdkTelemetry.cs 1009 Active
Error CS0115 ‘InitializationEvent.GetHashCode()’: no suitable method found to override ARDK E:\Portal\Unity\AxioAR-app\Assets\ARDK\Generated\ArdkTelemetry.cs 1029 Active
Error CS0115 ‘InitializationEvent.ToString()’: no suitable method found to override ARDK E:\Portal\Unity\AxioAR-app\Assets\ARDK\Generated\ArdkTelemetry.cs 1039 Active
Error CS0538 ‘Google.Protobuf.IMessage’ in explicit interface declaration is not an interface ARDK E:\Portal\Unity\AxioAR-app\Assets\ARDK\Generated\ArdkTelemetry.cs 1141 Active
Error CS0115 ‘ARSessionEvent.Equals(object)’: no suitable method found to override ARDK E:\Portal\Unity\AxioAR-app\Assets\ARDK\Generated\ArdkTelemetry.cs 1201 Active
Error CS0115 ‘ARSessionEvent.GetHashCode()’: no suitable method found to override ARDK E:\Portal\Unity\AxioAR-app\Assets\ARDK\Generated\ArdkTelemetry.cs 1220 Active
Error CS0115 ‘ARSessionEvent.ToString()’: no suitable method found to override ARDK E:\Portal\Unity\AxioAR-app\Assets\ARDK\Generated\ArdkTelemetry.cs 1229 Active
Error CS0538 ‘Google.Protobuf.IMessage’ in explicit interface declaration is not an interface ARDK E:\Portal\Unity\AxioAR-app\Assets\ARDK\Generated\ArdkTelemetry.cs 1332 Active
Error CS0115 ‘LightshipServiceEvent.Equals(object)’: no suitable method found to override ARDK E:\Portal\Unity\AxioAR-app\Assets\ARDK\Generated\ArdkTelemetry.cs 1413 Active
Error CS0115 ‘LightshipServiceEvent.GetHashCode()’: no suitable method found to override ARDK E:\Portal\Unity\AxioAR-app\Assets\ARDK\Generated\ArdkTelemetry.cs 1434 Active
Error CS0115 ‘LightshipServiceEvent.ToString()’: no suitable method found to override ARDK E:\Portal\Unity\AxioAR-app\Assets\ARDK\Generated\ArdkTelemetry.cs 1445 Active
Error CS0538 ‘Google.Protobuf.IMessage’ in explicit interface declaration is not an interface ARDK E:\Portal\Unity\AxioAR-app\Assets\ARDK\Generated\ArdkTelemetry.cs 1561 Active
Error CS0115 ‘MultiplayerConnectionEvent.Equals(object)’: no suitable method found to override ARDK E:\Portal\Unity\AxioAR-app\Assets\ARDK\Generated\ArdkTelemetry.cs 1639 Active
Error CS0115 ‘MultiplayerConnectionEvent.GetHashCode()’: no suitable method found to override ARDK E:\Portal\Unity\AxioAR-app\Assets\ARDK\Generated\ArdkTelemetry.cs 1659 Active
Error CS0115 ‘MultiplayerConnectionEvent.ToString()’: no suitable method found to override ARDK E:\Portal\Unity\AxioAR-app\Assets\ARDK\Generated\ArdkTelemetry.cs 1669 Active
Error CS0538 ‘Google.Protobuf.IMessage’ in explicit interface declaration is not an interface ARDK E:\Portal\Unity\AxioAR-app\Assets\ARDK\Generated\ArdkTelemetry.cs 1771 Active
Error CS0115 ‘MultiplayerColocalizationInitializationEvent.Equals(object)’: no suitable method found to override ARDK E:\Portal\Unity\AxioAR-app\Assets\ARDK\Generated\ArdkTelemetry.cs 1809 Active
Error CS0115 ‘MultiplayerColocalizationInitializationEvent.GetHashCode()’: no suitable method found to override ARDK E:\Portal\Unity\AxioAR-app\Assets\ARDK\Generated\ArdkTelemetry.cs 1826 Active
Error CS0115 ‘MultiplayerColocalizationInitializationEvent.ToString()’: no suitable method found to override ARDK E:\Portal\Unity\AxioAR-app\Assets\ARDK\Generated\ArdkTelemetry.cs 1833 Active
Error CS0538 ‘Google.Protobuf.IMessage’ in explicit interface declaration is not an interface ARDK E:\Portal\Unity\AxioAR-app\Assets\ARDK\Generated\ArdkTelemetry.cs 1893 Active
Error CS0115 ‘MultiplayerColocalizationEvent.Equals(object)’: no suitable method found to override ARDK E:\Portal\Unity\AxioAR-app\Assets\ARDK\Generated\ArdkTelemetry.cs 2045 Active
Error CS0115 ‘MultiplayerColocalizationEvent.GetHashCode()’: no suitable method found to override ARDK E:\Portal\Unity\AxioAR-app\Assets\ARDK\Generated\ArdkTelemetry.cs 2069 Active
Error CS0115 ‘MultiplayerColocalizationEvent.ToString()’: no suitable method found to override ARDK E:\Portal\Unity\AxioAR-app\Assets\ARDK\Generated\ArdkTelemetry.cs 2083 Active
Error CS0538 ‘Google.Protobuf.IMessage’ in explicit interface declaration is not an interface ARDK E:\Portal\Unity\AxioAR-app\Assets\ARDK\Generated\ArdkTelemetry.cs 2230 Active
Error CS0115 ‘EnabledContextualAwarenessEvent.Equals(object)’: no suitable method found to override ARDK E:\Portal\Unity\AxioAR-app\Assets\ARDK\Generated\ArdkTelemetry.cs 2299 Active
Error CS0115 ‘EnabledContextualAwarenessEvent.GetHashCode()’: no suitable method found to override ARDK E:\Portal\Unity\AxioAR-app\Assets\ARDK\Generated\ArdkTelemetry.cs 2319 Active
Error CS0115 ‘EnabledContextualAwarenessEvent.ToString()’: no suitable method found to override ARDK E:\Portal\Unity\AxioAR-app\Assets\ARDK\Generated\ArdkTelemetry.cs 2329 Active
Error CS0538 ‘Google.Protobuf.IMessage’ in explicit interface declaration is not an interface ARDK E:\Portal\Unity\AxioAR-app\Assets\ARDK\Generated\ArdkTelemetry.cs 2431 Active
Error CS0115 ‘ScanningFrameworkEvent.Equals(object)’: no suitable method found to override ARDK E:\Portal\Unity\AxioAR-app\Assets\ARDK\Generated\ArdkTelemetry.cs 2500 Active
Error CS0115 ‘ScanningFrameworkEvent.GetHashCode()’: no suitable method found to override ARDK E:\Portal\Unity\AxioAR-app\Assets\ARDK\Generated\ArdkTelemetry.cs 2520 Active
Error CS0115 ‘ScanningFrameworkEvent.ToString()’: no suitable method found to override ARDK E:\Portal\Unity\AxioAR-app\Assets\ARDK\Generated\ArdkTelemetry.cs 2530 Active
Error CS0538 ‘Google.Protobuf.IMessage’ in explicit interface declaration is not an interface ARDK E:\Portal\Unity\AxioAR-app\Assets\ARDK\Generated\ArdkTelemetry.cs 2657 Active
Error CS0115 ‘ScanCaptureEvent.Equals(object)’: no suitable method found to override ARDK E:\Portal\Unity\AxioAR-app\Assets\ARDK\Generated\ArdkTelemetry.cs 2714 Active
Error CS0115 ‘ScanCaptureEvent.GetHashCode()’: no suitable method found to override ARDK E:\Portal\Unity\AxioAR-app\Assets\ARDK\Generated\ArdkTelemetry.cs 2733 Active
Error CS0115 ‘ScanCaptureEvent.ToString()’: no suitable method found to override ARDK E:\Portal\Unity\AxioAR-app\Assets\ARDK\Generated\ArdkTelemetry.cs 2742 Active
Error CS0538 ‘Google.Protobuf.IMessage’ in explicit interface declaration is not an interface ARDK E:\Portal\Unity\AxioAR-app\Assets\ARDK\Generated\ArdkTelemetry.cs 2843 Active
Error CS0115 ‘ScanSaveEvent.Equals(object)’: no suitable method found to override ARDK E:\Portal\Unity\AxioAR-app\Assets\ARDK\Generated\ArdkTelemetry.cs 2888 Active
Error CS0115 ‘ScanSaveEvent.GetHashCode()’: no suitable method found to override ARDK E:\Portal\Unity\AxioAR-app\Assets\ARDK\Generated\ArdkTelemetry.cs 2906 Active
Error CS0115 ‘ScanSaveEvent.ToString()’: no suitable method found to override ARDK E:\Portal\Unity\AxioAR-app\Assets\ARDK\Generated\ArdkTelemetry.cs 2914 Active
Error CS0538 ‘Google.Protobuf.IMessage’ in explicit interface declaration is not an interface ARDK E:\Portal\Unity\AxioAR-app\Assets\ARDK\Generated\ArdkTelemetry.cs 2988 Active
Error CS0115 ‘ScanProcessEvent.Equals(object)’: no suitable method found to override ARDK E:\Portal\Unity\AxioAR-app\Assets\ARDK\Generated\ArdkTelemetry.cs 3045 Active
Error CS0115 ‘ScanProcessEvent.GetHashCode()’: no suitable method found to override ARDK E:\Portal\Unity\AxioAR-app\Assets\ARDK\Generated\ArdkTelemetry.cs 3064 Active
Error CS0115 ‘ScanProcessEvent.ToString()’: no suitable method found to override ARDK E:\Portal\Unity\AxioAR-app\Assets\ARDK\Generated\ArdkTelemetry.cs 3073 Active
Error CS0538 ‘Google.Protobuf.IMessage’ in explicit interface declaration is not an interface ARDK E:\Portal\Unity\AxioAR-app\Assets\ARDK\Generated\ArdkTelemetry.cs 3161 Active

Hello,

This is currently a known issue that occasionally pops up with Visual Studio. Are there any particular reasons you need to build via Visual Studio (such as using the debugger)? If not, building through Unity works just fine.