oculus-samples/Unreal-SharedSpaces

Infinite loading when launching the sample on Oculus Quest 2

Closed this issue ยท 14 comments

Hello

I've done every steps in Oculus Application Configuration (all the steps to do in the Oculus Developper Dashboard and Photon configuration). I'm building the sample with the unreal engine oculus branch (tag oculus-4.27.1-release-1.66.0-v34.0, commit ID : 3c2df138). After building everything and packaging on the Oculus Quest 2, I launch the application, and I can see the loading screen with the title Oculus Samples in front of my eyes, but unfortunately it never finish ...

Here the device log, the only thing that seems to going wrong in this log is : D/UE4 : dlopen failed: library "libheapprofd_standalone_client.so" not found.

I'm sorry but I don't know at all how I can debug it. Any help would be greatly appreciated, I really can't find any way to bypass this issue.

Thanks

Antoine

--------- beginning of tracking
--------- beginning of system
--------- beginning of main
V/UE4 : [NetworkChangedManager] Network Available: 101
V/UE4 : [NetworkChangedManager] No network state set yet, setting naive network state checking connection fully.
V/UE4 : [NetworkChangedManager] Network connectivity changed. New connectivity state: CONNECTION_AVAILABLE
V/UE4 : [NetworkChangedManager] Network Capabilities changed, has Internet: true
V/UE4 : [NetworkChangedManager] Verifying internet connection with host: https://example.com/
D/UE4 : dlopen failed: library "libheapprofd_standalone_client.so" not found
D/UE4 : Used memory before allocating anything was 117.78MB
D/UE4 : In the JNI_OnLoad function
D/UE4 : [JNI] - Failed to determine if app purchasing is enabled!
D/UE4 : Path found as '/storage/emulated/0'
D/UE4 : Font Path found as '/system/fonts/'
D/UE4 : In the JNI_OnLoad function 5
D/UE4 : Entering native app glue main function
D/UE4 : Created event thread
D/UE4 : Entered AndroidMain()
D/UE4 : Entering event processing thread engine entry point
D/UE4 : Prepared looper for event thread
D/UE4 : Passed callback initialization
D/UE4 : Passed sensor initialization
D/UE4 : Controller interface supported
D/UE4 : [GameActivity] Target SDK is 28. This may cause issues if permissions are denied by the user.
D/UE4 : [GameActivity] android.permission.WRITE_EXTERNAL_STORAGE was not granted; this may cause issues with file access.
D/UE4 : [GameActivity] Vulkan version: 1.1.0
D/UE4 : [GameActivity] Vulkan level: 1
D/UE4 : [GameActivity] Found DepthBufferPreference = 0
D/UE4 : [GameActivity] Found bPackageDataInsideApk = 0
D/UE4 : [GameActivity] Found ProjectName = SharedSpaces
D/UE4 : [GameActivity] Found AppType =
D/UE4 : [GameActivity] Found bHasOBBFiles = 0
D/UE4 : [GameActivity] Found bVerifyOBBOnStartUp = false
D/UE4 : [GameActivity] UI hiding set to true
D/UE4 : [GameActivity] Display cutout set to false
D/UE4 : [GameActivity] BuildConfiguration set to Development
D/UE4 : [GameActivity] UseExternalFilesDir set to false
D/UE4 : [GameActivity] PublicLogFiles set to false
D/UE4 : [GameActivity] AllowIMU set to true
D/UE4 : [GameActivity] SupportsVulkan set to true
D/UE4 : [GameActivity] Found Oculus Mobile mode.
D/UE4 : [GameActivity] Using APK commandline
D/UE4 : [GameActivity] Parsing commandline: ../../../SharedSpaces/SharedSpaces.uproject /Game/SharedSpaces/Maps/Lobby -Messaging -SessionId=A2E1656A4D464C5F1F49F9888EADB907 -SessionOwner="Tiger" -SessionName="Launch On Device" -iterative
D/UE4 : [GameActivity] [MemoryAdvisor] Significant amount of memory is available for allocation. Estimate is 2448 MB
D/UE4 : [GameActivity] ro.hardware: hollywood
D/UE4 : [GameActivity] Hardware: Qualcomm Technologies, Inc KONA
D/UE4 : [GameActivity] Memory: 5842 MB
D/UE4 : [GameActivity] UseAffinity: false
D/UE4 : [GameActivity] BigCoreMask: 0xffff
D/UE4 : [GameActivity] LittleCoreMask: 0x0
D/UE4 : [GameActivity] APK path: /data/app/com.oculus.sho.SharedSpaces-orbCL5rvGIGXue9agXxLsQ==/base.apk
D/UE4 : [GameActivity] OBB in APK: false
D/UE4 : InternalFilePath found as '/data/user/0/com.oculus.sho.SharedSpaces/files'
D/UE4 : ExternalFilePath found as '/storage/emulated/0/Android/data/com.oculus.sho.SharedSpaces/files'
D/UE4 : App is running in Landscape
D/UE4 : [GameActivity] Android version is 10
D/UE4 : [GameActivity] Android manufacturer is Oculus
D/UE4 : [GameActivity] Android model is Quest 2
D/UE4 : [GameActivity] Android build number is user-21985310245200000
D/UE4 : [GameActivity] OS language is set to fr_FR
D/UE4 : [GameActivity] Debugger attached is false
D/UE4 : [GameActivity] googleClient is valid
D/UE4 : [GameActivity] ==============> GameActive.onCreate complete!
D/UE4 : [GameActivity] Creating console command broadcast listener
D/UE4 : LogAndroidEvents::EnqueueAppEvent : 9, [width=-1, height=-1], tid = 8353, APP_EVENT_STATE_ON_START
D/UE4 : [GameActivity] ==================================> Inside onStart function in GameActivity
V/UE4 : [GameApp] App in foreground
D/UE4 : Case APP_CMD_RESUME
D/UE4 : LogAndroidEvents::EnqueueAppEvent : 7, [width=-1, height=-1], tid = 8353, APP_EVENT_STATE_ON_RESUME
D/UE4 : [GameActivity] === Restoring Transparent Bars ===
D/UE4 : [GameActivity] ==============> [JAVA] AndroidThunkJava_KeepScreenOn(false) - Enabled screen saver
D/UE4 : [GameActivity] ==============> [JAVA] AndroidThunkJava_DisableScreenCapture(false) - Enabled screen captures
D/UE4 : [GameActivity] Registering sensor listeners
D/UE4 : App is running in Landscape
D/UE4 : [GameActivity] === Restoring Transparent Bars ===
D/UE4 : [GameActivity] ==============> Resuming main init
D/UE4 : APK Commandline: ../../../SharedSpaces/SharedSpaces.uproject /Game/SharedSpaces/Maps/Lobby -Messaging -SessionId=A2E1656A4D464C5F1F49F9888EADB907 -SessionOwner="Tiger" -SessionName="Launch On Device" -iterative
D/UE4 : Final commandline: ../../../SharedSpaces/SharedSpaces.uproject /Game/SharedSpaces/Maps/Lobby -Messaging -SessionId=A2E1656A4D464C5F1F49F9888EADB907 -SessionOwner="Tiger" -SessionName="Launch On Device" -iterative
D/UE4 : Created sync event
D/UE4 : [GameActivity] ==============> GameActive.onResume complete!
D/UE4 : Case APP_CMD_INIT_WINDOW
D/UE4 : LogAndroidEvents::EnqueueAppEvent : 0, [width=3664, height=1920], tid = 8353, APP_EVENT_STATE_WINDOW_CREATED
V/UE4 : [NetworkChangedManager] Connectivity hasn't changed. Current state: CONNECTION_AVAILABLE
V/UE4 : [NetworkChangedManager] Full network check complete. State: CONNECTION_AVAILABLE
D/UE4 : LogAndroidEvents::EnqueueAppEvent : 11, [width=-1, height=-1], tid = 8353, APP_EVENT_STATE_WINDOW_GAINED_FOCUS
D/UE4 : LogAndroidEvents::EnqueueAppEvent : 14, [width=-1, height=-1], tid = 8353, APP_EVENT_STATE_APP_ACTIVATED
D/UE4 : LogAndroidEvents::EnqueueAppEvent : 15, [width=-1, height=-1], tid = 8353, APP_EVENT_RUN_CALLBACK
D/UE4 : [GameActivity] Used memory: 142675 (VmRSS: 212020 kB)
D/UE4 : [GameActivity] Used memory: 142707 (VmRSS: 211988 kB)
D/UE4 : [GameActivity] Used memory: 142817 (VmRSS: 211976 kB)
D/UE4 : [GameActivity] Used memory: 142869 (VmRSS: 211952 kB)
D/UE4 : [GameActivity] Used memory: 142917 (VmRSS: 212100 kB)
D/UE4 : [GameActivity] Used memory: 142961 (VmRSS: 212072 kB)
D/UE4 : [GameActivity] Used memory: 143013 (VmRSS: 212060 kB)
D/UE4 : [GameActivity] Used memory: 143057 (VmRSS: 212032 kB)
D/UE4 : [GameActivity] Used memory: 143105 (VmRSS: 212016 kB)
D/UE4 : [GameActivity] Used memory: 143153 (VmRSS: 212000 kB)
D/UE4 : [GameActivity] Used memory: 143205 (VmRSS: 211984 kB)
D/UE4 : [GameActivity] Used memory: 143253 (VmRSS: 211968 kB)
D/UE4 : [GameActivity] Used memory: 143301 (VmRSS: 211952 kB)
D/UE4 : [GameActivity] Used memory: 143353 (VmRSS: 211936 kB)
...

Hello bidonjour,

The libheapprofd_standalone_client.so error is 'normal', you can ignore it for the purpose of running the sample. I get the same error when I run the sample on Quest 2.

Two things to investigate:

  1. Entitlement Check

We have pushed an update to GitHub to fix a missing entitlement check. Make sure you have the latest.

  1. Verify MobileAppId

We did encounter your issue previously. The main reason was that we had the wrong AppID in DefaultEngine.ini:
[OnlineSubsystemOculus]
bEnabled=false
MobileAppId=<YOUR APP ID>

Make sure you have configured the application for Quest, and on the dashboard verify your application id:
https://developer.oculus.com/manage/applications/ <YOUR APPLICATION> /api/

Let us know if that fixes it!

@els-oculus Eric, I'm having the same issue as bidonjour.

I'm on the latest repo (pulled 12/26/21), I can get the project to build to my device (quest2) via project launcher, but it is also then stuck on the loading screen.

Per your earlier comments, I have an app on Oculus and am using that app's AppID in the defaultegine.ini

  • my oculus destinations are still 'pending review' could that be the issue?? I'll check back when they're approved (might have to wait since it's the holiday) and see if that fixes the issue...

Are there any other suggestions?

I get two build warnings but no other errors or warnings:

  1. LogClass: Warning: ObjectProperty FOculusCapsuleCollider::Capsule is not initialized properly. Module:OculusInput File:Public/OculusInputFunctionLibrary.h
  2. LogAutomationTest: Warning: ObjectProperty FOculusCapsuleCollider::Capsule is not initialized properly. Module:OculusInput File:Public/OculusInputFunctionLibrary.h

Hello

Thanks for your answer, but unfortunately everything is configured correcty on my side. My AppID is set in the .ini file, and I am on the latest version.

Same as @KavanBahrami, my destinations are still in pending reivew, so maybe that's the issue.

Same as @KavanBahrami, my destinations are still in pending review, so maybe that's the issue.

19 days and still pending review?! Is that normal? Holiday delay perhaps

I was wondering about this, my AppLab app has had Destinations Pending Review for over two months now and I was curious how much of a bottleneck this would be to get Shared Spaces up and running. I've tried to get clarity from Oculus on destinations and the review process with no clear answer back, but if it's a pre-requisite for even getting a shared spaces demo working, I'm not really sure what we are supposed to do.

The email customer support team keeps telling me to fill out the Data Use Checkup, which has already been filled out and approved.. destinations are still in PENDING status, the app still not loading past the starting logo screen. If anyone gets any sort of movement on this please share it. I was hoping to have some 'best practices to pull from this demo . . . I'll wait a bit longer past the holidays to see if someone checks in before I get squeakier

I have heard from someone at Oculus directly that Destinations are manually approved, which is different than the automatic approval for matchmaking pools and other features supported through the Data User Checkup; It sounds like customer support is confusing the issue.

My 2 mo.+ Destinations have even apparently been escalated, but that was shortly before the holidays. I asked at Facebook Connect if apps had to be approved for AppLab for Destinations to work, I never got a clear answer from the team responsible, they sort of implied that might be the case, but then SharedSpaces would never work. I'm watching this thread and waiting as well for an update, if anything happens on my end I shall also post here.

@bidonjour and @KavanBahrami : did you go over the Data Use Checkup to turn on destinations, deep linking, etc.?

Regarding approval of destinations: they require approval before non-developers can see them. While they are under review only devs of that app can see the destinations, so that should not block development.

@els-oculus : Everything is checked in Data Use Checkup for me (I can't see Destinations in this section though, but I can see Deep Linking).

Hi, thanks for the response @els-oculus,

re Data Use Checkup: UserID, UserProf, DeepLinking, Friends, Invites all approved.
re PlatformServices/Destinations: It is active and all the destinations were created per the readme. Submission and Publish states are pending. I changed 'target audience' from everyone to developers only thinking perhaps that would help but it didn't.

It's good to know that destinations pending shouldn't affect dev, but I'm having a hard time isolating what the issue might be. It seems like there are a few of us, and I've yet to hear from anyone who's been able to get this demo to successfully build/play on the headset.

@els-oculus Brainstorming more potentials... Does the project require a build to be uploaded to oculus to work? I assumed not, and so far have just built/ran on the device.

@els-oculus Brainstorming more potentials... Does the project require a build to be uploaded to oculus to work? I assumed not, and so far have just built/ran on the device.

You do not need to upload the project to Oculus. You just package from UE4: File > Package Project > Android > Android ASTC, and you choose a directory.
When packaging is done and successful, you can install from that directory using the Install_[PROJECT]-arm64.bat file.

So to perform a sanity check of everything I did the following:

  • I created a new external/normal (i.e. non-privileged) Oculus account.
  • Made a new org at dashboard.oculus.com.
  • Configured a new app (for Quest) that I called PigsInSpace (https://youtu.be/Eul1NlwytF4).
    • Added the 5 destinations, making sure the deeplink message is correct (e.g. {"is_lobby":"true","map":"Lobby"}). Note that the only requirement for that field is that there are no whitespaces. The format we chose for SharedSpaces is JSON so make sure that you used curly braces.
    • Did that Data Use Checkup, in particular the one that says "Use Destinations, Group Presence and App Deep Linking" under "User Profile".
  • Then I built and packaged the project with the new application id in Config/DefaultEngine.ini.
    • [OnlineSubsystemOculus]
      MobileAppId=5045xxxxxxxx6923
  • Installed using the batch file. It does complain about some Android permissions that you can ignore as it installs fine for the purpose of this test.
  • Since this is not a build uploaded on the Oculus store, I found it on the headset under "Apps > Unknown Sources".

It ran fine on an older Quest device that I flashed with the latest public firmware.

To try to repro your problem, I tried a couple more things:

  • I tested using an invalid app id, but in my case it did not hang, it just tried to start and dropped back to home.
  • I messed with the deeplink message of the Lobby destination (some invalid characters), and the app still starts correctly. It does mess up the teleportation back to Lobby from a colored room, however, will leave you stuck in the transition map (the black level where you can see what the controller buttons do).

So, unfortunately, I was not able to repro your issue. Another potential source of problems is your firmware version. Could you post that?

!! WORKED !!
only change: Rather than using the launcher to build to the device, I packaged the project and did the bat file install per your last comment.

@bidonjour @gabryelx see if that works for you as well.

Thank you @els-oculus for the detailed response. It helped. If this same issue is what was preventing the other person from getting this to work, you might want to test to see if the launcher fails for you as well, and if so, mention that in the readme or explicitly direct people to use the package/bat route to install the app.

Thanks everybody, I also confirmed the issue is solved using "File > Package Project > ...".
Problem solved !

The launch button is fixed for development builds with commit 90afcdd19b8628e53881ebdf847d88a5a181f286. Still need to use File > Package Project for shipping builds.