googlesamples / arcore-depth-lab

ARCore Depth Lab is a set of Depth API samples that provides assets using depth for advanced geometry-aware features in AR interaction and rendering. (UIST 2020)
https://augmentedperception.github.io/depthlab/
Apache License 2.0
780 stars 153 forks source link

Collider runtime error after local Unity 2018 build/install (was: Build error in Unity) #14

Closed brianm-sra closed 4 years ago

brianm-sra commented 4 years ago

I'm trying to Build and Run the ARRealismDemos/Collider/Scenes/Collider for Android Platform on Windows 10 version of Unity 2018.4.22f1 Personal

I'm seeing build errors

Error building Player because scripts have compile errors in the editor Build completed with a result of 'Failed' UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr) (at C:/buildslave/unity/build/Modules/IMGUI/GUIUtility.cs:179) UnityEditor.BuildPlayerWindow+BuildMethodException: Error building Player because scripts have compile errors in the editor at UnityEditor.BuildPlayerWindow+DefaultBuildMethods.BuildPlayer (UnityEditor.BuildPlayerOptions options) [0x00242] in C:\buildslave\unity\build\Editor\Mono\BuildPlayerWindowBuildMethods.cs:194 at UnityEditor.BuildPlayerWindow.CallBuildMethods (System.Boolean askForBuildLocation, UnityEditor.BuildOptions defaultBuildOptions) [0x0007f] in C:\buildslave\unity\build\Editor\Mono\BuildPlayerWindowBuildMethods.cs:97 UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr) (at C:/buildslave/unity/build/Modules/IMGUI/GUIUtility.cs:179)

Any suggestions on how to fix this ?

ruofeidu commented 4 years ago

Hi brianm-sra,

Thank you for your interests in Depth Lab!

I just spent 30min to build a clean APK with Unity 2018.4.24f1 and the latest Android SDK and NDK r16b (as Unity suggested) on Windows 10, and no error has occurs. Please let me know if this error still persists.

Cheers, Ruofei

brianm-sra commented 4 years ago

Thanks. I got it to build and install now. Probably the issue above was human error on my part, maybe either forgetting to import Unity package arcore-unity-sdk-1.18.0.unitypackage and/or to set the Unity preference for NDK location correctly.

Unfortunately I am now seeing a separate runtime issue where nothing is happening in the app (Collider scene only selected in Unity "Scenes In Build" portion of Build Settings) when I tap the "Throw" button on the bottom of the screen. I've seen it work before when using the version of the app from Google Play Store (with all scenes), but there seems to be an issue with the app I built myself in Unity with only one scene.

I see some logcat messages like the following:

07-14 11:44:12.197 19320 19361 E Unity : 07-14 11:44:12.218 921 1952 E CamX : [ERROR][STATS_AF] camxcafioutil.cpp:2944 PublishHALMetadata() HAL update af state 2 07-14 11:44:12.220 921 1952 E CamX : [ERROR][META ] camxhal3metadatautil.cpp:1175 UpdateMetadata() Cannot set Metadata for Tag: 0x805e0001 07-14 11:44:12.220 921 1952 E CamX : [ERROR][META ] camxmetabuffer.cpp:644 GetAndroidMeta() Update tag 805e0001 failed 1 name com.qti.node.fcv.SupportedFeature addr 0x79f533bb04 count 1 07-14 11:44:12.221 921 1951 W CamX : [ WARN][CORE ] camxvendortags.cpp:408 QueryVendorTagLocation() Vendor tag accelerometerValues in section none does not exist! 07-14 11:44:12.231 19320 19361 E Unity : NullReferenceException: Object reference not set to an instance of an object. 07-14 11:44:12.231 19320 19361 E Unity : at DepthMeshCollider.InitializeComputeShader () [0x00000] in <00000000000000000000000000000000>:0 07-14 11:44:12.231 19320 19361 E Unity : at DepthMeshCollider.Update () [0x00000] in <00000000000000000000000000000000>:0 07-14 11:44:12.231 19320 19361 E Unity : 07-14 11:44:12.231 19320 19361 E Unity : (Filename: currently not available on il2cpp Line: -1) 07-14 11:44:12.231 19320 19361 E Unity : 07-14 11:44:12.231 19320 19361 E native : status.cc:161 FAILED_PRECONDITION: 07-14 11:44:12.231 19320 19361 E native : ARCoreError: third_party/arcore/ar/core/session.cc:2690 07-14 11:44:12.231 19320 19361 E native : 07-14 11:44:12.231 19320 19361 E native : ARCoreError: vr/perception/depth/projects/motion_stereo/motion_stereo_manager.cc:2010 07-14 11:44:12.231 19320 19361 E native : No depth data found for the requested timestamp. [type.googleapis.com/util.ErrorSpacePayload='ArStatusErrorSpace::AR_ERROR_NOT_YET_AVAILABLE'] 07-14 11:44:12.233 19320 19830 I native : distribute.cc:79 No keypoints to prune. 07-14 11:44:12.235 19320 19361 E Unity : DepthHelper::AcquireDepthImage could not get depth data, status: ErrorNotYetAvailable 07-14 11:44:12.235 19320 19361 E Unity : MotionStereoDepthDataSource:_AcquireDepthImage(IntPtr, IntPtr, IntPtr&) 07-14 11:44:12.235 19320 19361 E Unity : MotionStereoDepthDataSource:_UpdateTexture(Texture2D&, T[]&, AcquireDepthImageDelegate) 07-14 11:44:12.235 19320 19361 E Unity : DepthSource:Update() 07-14 11:44:12.235 19320 19361 E Unity : 07-14 11:44:12.235 19320 19361 E Unity : (Filename: ./Runtime/Export/Debug.bindings.h Line: 45)

ruofeidu commented 4 years ago

The core error is No depth data found for the requested timestamp.

Does this issue persist if you move the phone a little bit to initialize ARCore Depth API?

Thanks, Ruofei

brianm-sra commented 4 years ago

Yes, but it seems to be particular to the Collider Scene specifically. I added back the other Scenes, and others seem to be working fine, including the Color Balloons scene.

Also seen in logcat from latest test:

07-14 13:41:16.605 1164 4965 I InputDispatcher: Delivering touch to (32705): action: 0x1, f=0x0, d=0, 'd106c97', t=1 07-14 13:41:16.633 32705 32738 E Unity : NullReferenceException: Object reference not set to an instance of an object. 07-14 13:41:16.633 32705 32738 E Unity : at DepthMeshCollider.InitializeComputeShader () [0x00000] in <00000000000000000000000000000000>:0 07-14 13:41:16.633 32705 32738 E Unity : at DepthMeshCollider.Update () [0x00000] in <00000000000000000000000000000000>:0 07-14 13:41:16.633 32705 32738 E Unity : 07-14 13:41:16.633 32705 32738 E Unity : (Filename: currently not available on il2cpp Line: -1)

...

and

07-14 13:46:07.403 921 1950 E CamX : [ERROR][STATS_AF] camxcafioutil.cpp:2944 PublishHALMetadata() HAL update af state 2 07-14 13:46:07.417 921 1951 W CamX : [ WARN][CORE ] camxvendortags.cpp:408 QueryVendorTagLocation() Vendor tag accelerometerValues in section none does not exist! 07-14 13:46:07.418 921 1949 E CamX : [ERROR][META ] camxhal3metadatautil.cpp:1175 UpdateMetadata() Cannot set Metadata for Tag: 0x805e0001 07-14 13:46:07.418 921 1949 E CamX : [ERROR][META ] camxmetabuffer.cpp:644 GetAndroidMeta() Update tag 805e0001 failed 1 name com.qti.node.fcv.SupportedFeature addr 0x79f70553c4 count 1 07-14 13:46:07.432 1392 1451 E Unity : NullReferenceException: Object reference not set to an instance of an object. 07-14 13:46:07.432 1392 1451 E Unity : at DepthMeshCollider.InitializeComputeShader () [0x00000] in <00000000000000000000000000000000>:0 07-14 13:46:07.432 1392 1451 E Unity : at DepthMeshCollider.Update () [0x00000] in <00000000000000000000000000000000>:0 07-14 13:46:07.432 1392 1451 E Unity : 07-14 13:46:07.432 1392 1451 E Unity : (Filename: currently not available on il2cpp Line: -1)

brianm-sra commented 4 years ago

Above was built with Unity 2018.4.24f1, latest Android SDK, NDK android-ndk-r16b-windows-x86_64

Test device used was Samsung S20+ 5G (supports Depth API) running Android 10

Let me know if I can provide additional information to help debug, or if there is something else I should try

brianm-sra commented 4 years ago

I just noticed the sentence

"Close and reopen the project and reimport all demo shaders to resolve any dependency issues in the Unity editor."

in the README instructions.

I'm trying again now with Unity 2018.4.22f1, which was apparently the last version used by whoever checked in the files to github.

If I get it all working then I will close this issue.

brianm-sra commented 4 years ago

Okay, I got it to work now. Closing the issue.