google-ar / arcore-unity-extensions

Google ARCore Extensions and Geospatial Creator for Unity's AR Foundation
Other
342 stars 95 forks source link

frequently appear ErrorEarthNotready and cannot start Camera #147

Open chiangandy opened 9 months ago

chiangandy commented 9 months ago

I try to build Geospatial sample and run on device. I didn't get any error message during the build apk. but when I install and run app on my device. It frequently appear ErrorEarthNotReady as screenshot. It is so confuse me about this error, I even not sure it is an issue for client side. or service cloud side and how to deal with this.

My develop environment is as below:

  1. APPLE mac mini M2 pro.

  2. Unity 2022.3.10.f1 and also try 2021.3.30f1 The reason I downgrade engine version is I found 2022.3.10f1 change AR session origin to XRorigin. I suppose it is reason for error, but after I change to 2021.3.30f1, issue is still happen.

  3. build apk is for Android.

  4. My current location is in Taiwan, is it an issue?

Does everyone know what situation will get ErrorEarthNotready error.

Every information will be appreciated. :)

Screenshot_20231102_160057_com womo womogo Screenshot_20231102_160104_com womo womogo

devbridie commented 9 months ago

Hi, Since there is no camera feed, it seems like there is a larger problem with AR, and not just the Geospatial sample. Could you try the Cloud Anchor sample to see if that one is able to start normally?

chiangandy commented 9 months ago

Thanks for you information, I will check cloud anchor part. By the way, this issue is often happen not every build times. some builds can work but some build will get blank camera screen even sample source code just put "//" comments and rebuild, So strange. Since I have check my Camera with other app and it is not any problem. I also try arcore app on other phone device and get same issue.

Thanks.

chiangandy commented 9 months ago

II have try cloud Anchor, it can run with no any problem as screenshot, But I didn't try to re-buid more times.

Screenshot_20231102_164556_com womo womogo Screenshot_20231102_164611_com womo womogo Screenshot_20231102_164643_com womo womogo Screenshot_20231102_164656_com womo womogo

chiangandy commented 9 months ago

I check the document about description for error "ErrorEarthNotready", it describe as below

Failed to acquire Earth. This is returned when the current session is initializing Geospatial functionalities. This state should not be active for more than a few frames.

and I was tracking the ARsession, the state already initializing, but EarthManagerstate is always ErrorEarthNotready, It is abnormal! I believe it is main reason for this issue.

Does everyone has this situation before?

chiangandy commented 9 months ago

I also check CheckVpsAvailability function for EathManager, this function check availability by using local location data. since app always get VPS not availability screen. When my camera cannot be open, app also show this screen. Something I would like to ask is... Does ARcore VPS has restrict location area to use? I sounds like cloud service tell me service is not avaliable for my current location.

chiangandy commented 9 months ago

next debuging task... I use remote debugging via usb connect to device and dump log. I saw is something can answer my issues... 11-03 16:12:12.387 5165 5196 I Unity : Using session configuration 0x1 11-03 16:12:12.387 5165 5196 I Unity : Requested Features: World Facing Camera, Rotation and Orientation, Plane Tracking, Auto-Focus, Light Estimation (Ambient Intensity), Raycast 11-03 16:12:12.387 5165 5196 I Unity : Supported Features: World Facing Camera, Rotation and Orientation, Plane Tracking, Auto-Focus, Light Estimation (Ambient Intensity), Raycast 11-03 16:12:12.387 5165 5196 I Unity : Requested features not satisfied: (None) 11-03 16:12:12.387 5165 5196 I Unity : UnityEngine.DebugLogHandler:LogFormat(LogType, Object, String, Object[]) 11-03 16:12:12.387 5165 5196 I Unity : UnityEngine.Logger:Log(LogType, Object) 11-03 16:12:12.387 5165 5196 I Unity : UnityEngine.Debug:Log(Object) 11-03 16:12:12.387 5165 5196 I Unity : UnityEngine.XR.ARSubsystems.XRSessionSubsystem:DebugPrintConfigurationChange(Configuration, Feature) (at /Users/andychiang/unity_projects/try2/Library/PackageCache/com.unity.xr.arsubsystems@4.2.9/Runtime/SessionSubsystem/XRSessionSubsystem.cs:165) 11-03 16:12:12.387 5165 5196 I Unity : UnityEngine.XR.ARSubsystems.XRSessionSubsystem:Update(XRSessionUpdateParams) (at /Users/andychiang/unity_projects/try2/Library/PackageCache/com.unity.xr.arsubsystems@4.2.9/Runtime/SessionSubsystem/XRSessionSubsystem.cs:128) 11-03 16:12:12.387 5165 5196 I Unity : UnityEngine.XR.ARFoundation.ARSession:Update() (at 11-03 16:12:13.410 5165 5196 I Unity : VPS Availability at (24.9934, 121.503): ErrorNotAuthorized 11-03 16:12:13.410 5165 5196 I Unity : UnityEngine.DebugLogHandler:LogFormat(LogType, Object, String, Object[]) 11-03 16:12:13.410 5165 5196 I Unity : UnityEngine.Logger:LogFormat(LogType, String, Object[]) 11-03 16:12:13.410 5165 5196 I Unity : UnityEngine.Debug:LogFormat(String, Object[]) 11-03 16:12:13.410 5165 5196 I Unity : Google.XR.ARCoreExtensions.Samples.Geospatial.d__93:MoveNext() (at /Users/andychiang/unity_projects/try2/Assets/Samples/ARCore Extensions/1.40.0/Geospatial Sample/Scripts/GeospatialController.cs:1331) 11-03 16:12:13.410 5165 5196 I Unity : UnityEngine.SetupCoroutine:InvokeMoveNext(IEnumerator, IntPtr) (at /home/bokken/build/output/unity/unity/Runtime/Export/Scripting/Coroutines.cs:17) 11-03 16:12:13.410 5165 5196 I Unity :

according to log, it mention "VPS Availability at (24.9934, 121.503): ErrorNotAuthorized". However, my keystore configure corrected which cannot find any issue. otherwise, Is that mean location (24.9934, 121.503) is not authorized to use VPS? debug.log

the log data is attached, please please help me to check this... Thanks

chiangandy commented 9 months ago

next case, I just change some code in string content and rebuild it. App can lunch success?!

I also check log from my device....

11-03 17:03:06.873 27356 27389 I Unity : Using session configuration 0x1 11-03 17:03:06.873 27356 27389 I Unity : Requested Features: World Facing Camera, Rotation and Orientation, Plane Tracking, Auto-Focus, Light Estimation (Ambient Intensity), Raycast 11-03 17:03:06.873 27356 27389 I Unity : Supported Features: World Facing Camera, Rotation and Orientation, Plane Tracking, Auto-Focus, Light Estimation (Ambient Intensity), Raycast 11-03 17:03:06.873 27356 27389 I Unity : Requested features not satisfied: (None) 11-03 17:03:06.873 27356 27389 I Unity : UnityEngine.DebugLogHandler:LogFormat(LogType, Object, String, Object[]) 11-03 17:03:06.873 27356 27389 I Unity : UnityEngine.Logger:Log(LogType, Object) 11-03 17:03:06.873 27356 27389 I Unity : UnityEngine.Debug:Log(Object) 11-03 17:03:06.873 27356 27389 I Unity : UnityEngine.XR.ARSubsystems.XRSessionSubsystem:DebugPrintConfigurationChange(Configuration, Feature) (at /Users/andychiang/unity_projects/try2/Library/PackageCache/com.unity.xr.arsubsystems@4.2.9/Runtime/SessionSubsystem/XRSessionSubsystem.cs:165) 11-03 17:03:06.873 27356 27389 I Unity : UnityEngine.XR.ARSubsystems.XRSessionSubsystem:Update(XRSessionUpdateParams) (at /Users/andychiang/unity_projects/try2/Library/PackageCache/com.unity.xr.arsubsystems@4.2.9/Runtime/SessionSubsystem/XRSessionSubsystem.cs:128) 11-03 17:03:06.873 27356 27389 I Unity : UnityEngine.XR.ARFoundation.ARSession:Update() (at 11-03 17:03:07.690 27356 27389 I Unity : VPS Availability at (24.99385, 121.5035): Available 11-03 17:03:07.690 27356 27389 I Unity : UnityEngine.DebugLogHandler:LogFormat(LogType, Object, String, Object[]) 11-03 17:03:07.690 27356 27389 I Unity : UnityEngine.Logger:LogFormat(LogType, String, Object[]) 11-03 17:03:07.690 27356 27389 I Unity : UnityEngine.Debug:LogFormat(String, Object[]) 11-03 17:03:07.690 27356 27389 I Unity : Google.XR.ARCoreExtensions.Samples.Geospatial.d__93:MoveNext() (at /Users/andychiang/unity_projects/try2/Assets/Samples/ARCore Extensions/1.40.0/Geospatial Sample/Scripts/GeospatialController.cs:1331) 11-03 17:03:07.690 27356 27389 I Unity : UnityEngine.SetupCoroutine:InvokeMoveNext(IEnumerator, IntPtr) (at /home/bokken/build/output/unity/unity/Runtime/Export/Scripting/Coroutines.cs:17)

according to log content, it mention "VPS Availability at (24.99385, 121.5035): Available". the location longitude and latitude is same as last case, but this time is avaliable! How come?! why?!

debug_ok.log

AR service is playing game with me?

So sad...

immersionfx commented 9 months ago

I have the same problem, Unity 2022.3.11.f1, ARCore Extensions 1.40.0. When I install and run app on my device, I get ErrorEarthNotReady and a black screen.

All I can add to your observations is that it's not because of unavailability of VPS in your area, because I have VPS availability (as I can see from my logs) but the ErrorEarthNotReady problem is still there

chiangandy commented 9 months ago

I have the same problem, Unity 2022.3.11.f1, ARCore Extensions 1.40.0. When I install and run app on my device, I get ErrorEarthNotReady and a black screen.

All I can add to your observations is that it's not because of unavailability of VPS in your area, because I have VPS availability (as I can see from my logs) but the ErrorEarthNotReady problem is still there

I am checking my develop environment and any configuration. How about your develop platform? I am using APPLE M2 pro silicon chip, I just worry this is an issue....

Andy

immersionfx commented 9 months ago

I'm on Windows 10.

I reverted to Unity 2021 and the problem went away. Still, I don't know why it won't work in Unity 2022 (bug maybe?). Google should state that somewhere but the support for geospatial still seems to be too limited.

chiangandy commented 9 months ago

I'm on Windows 10.

I reverted to Unity 2021 and the problem went away. Still, I don't know why it won't work in Unity 2022 (bug maybe?). Google should state that somewhere but the support for geospatial still seems to be too limited.

As I know, Unity 2022 use XRorigin to replace ARSessionOrigin which may conflict. so Unity 2021 is recommended when developer uses ARcore extension or wait google team to upgrade extension to new version which use XROrigin. But I am not sure it is a major issue for ErrorEarthNotReady or not. Because I have changed to Unity 2021 but sometime I still get ErrorEarthNotReady error.

PS. which sub-version of Unity engine did you use? I am using 2021.3.30f1 now. still check buging... :(

Andy

immersionfx commented 9 months ago

I am now using Unity 2021.3.22.

If it helps, I had the following conflict in 2022 which prevented me from building correctly:

I bypassed it by importing the latest package(EDM4U) external-dependency-manager-latest.unitypackage.

chiangandy commented 9 months ago

When I try to build apk in unity2022, I didn`t get this error. Maybe hardware platform is different. Now, I focus on 2021,because of ARsessionorigin issue. By the way, I strongly suggest you to build apk more times, because I got error not every times, it is often appear. Try to repeatly modify code and rebuilds.

immersionfx @.***> 於 2023年11月6日 週一 17:32 寫道:

I am now using Unity 2021.3.22.

If it helps, I had the following conflict in 2022 which prevented me from building correctly:

  • Assembly 'Assets/ExternalDependencyManager/Editor/Google.IOSResolver.dll' will not be loaded due to errors

I bypassed it by importing the latest package(EDM4U) external-dependency-manager-latest.unitypackage.

— Reply to this email directly, view it on GitHub https://github.com/google-ar/arcore-unity-extensions/issues/147#issuecomment-1794410037, or unsubscribe https://github.com/notifications/unsubscribe-auth/AALGOGZ3HOTIG3ZT27BSY7LYDCVCNAVCNFSM6AAAAAA62PCZQOVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTOOJUGQYTAMBTG4 . You are receiving this because you authored the thread.Message ID: @.***>

nykten commented 9 months ago

hi, +1 Also having the same issue here.

chiangandy commented 8 months ago

Finally, I try out a solution can avoid this..

Unity engine need to use 2021.3.22 and create a project from '3D', don't use 'AR'. then install ARcore and ARCore extension and also include geospatial sample. in authorize part, it need to setup API key (using keyless will appear VPS not available.) then It will work fine and without black camera.

ps. I am using mac platform for development, it may be different situation in other platform.

Andy Chiang.

mrossi-os commented 4 months ago

Hi, same issue here. I'm using:

It works fine initially but after some time AREarthManager.EarthState is always ErrorEarthNotReady. An API key is used for authorization.

JulesThuillier commented 4 months ago

Hello ! Same issue here too,

It happens on the first start just after a build. I have to kill - relaunch the app. It also happens every time I reset the AR Session (we stop the AR Session in some parts of our application to avoid draining too much battery).

mrossi-os commented 2 months ago

The discussion moved to https://github.com/google-ar/arcore-unity-extensions/issues/183

JooonseoP commented 1 month ago

I'm creating an AR Map program, but I'm experiencing the same problem.

Every time I build, sometimes it works and sometimes it doesn't, so I'm trying various ways to solve the problem, but I don't know what the difference is. Does the problem occur when building, or when the program is turned off and on?

If the above method doesn't work, I thought I could clear the build cache and build again, but that wasn't the case. Accurate problem analysis and solution are required. This problem has been bugging me for a week.

My conf:

Windows 10 Unity 2022.3.32.f1 ARCore XR Plugin 5.1.4 ARFoundation 5.1.4 ARCore Extensions 1.44.0 Cesium for UNITY 1.10.1 build : Android Android Machine : Galaxy Note10 5G, SM-N971N Android Version : 12

https://github.com/google-ar/arcore-unity-extensions/issues/183

I posted the same answer here where I thought it was the same problem, but I'm posting my question here too because I want to get a quick answer.