Download

UE 4.26.0 - Oculus Quest 2 - Project launches (kind of) OK, doesn't start on Device

Everything’s works fine with 4.25.4

The same project in 4.26 is editable and can be launched to my Quest 2, but it won’t start there. It jams at the usual loading black screen after displaying the 3 pulsating dots. A new project created in 4.26 won’t work either.

I must be missing something.

UE 4.26.0
minimum SDK = 25, target SDK = 25, NDK API level = android-30 (29 didn’t work either), SDK = matchndk (21 in this case)
OpenGL ES 3.1
Xcode 12.2
Android Studio 3.5.3

Launching goes all the way to a start on the device, but it will remain at “building” on the floating status dialog. In 4.25.4, it goes to “Running”.

4.26 is apparently supported on the Quest 2 as it appears in a compatibility list on the Oculus website.

If things works for you along these parameters, I’d appreciate if you’d let me know even if you don’t know what’s wrong with my setup.

I came across something that mentioned that it could have something to see with the Android SDK license, but it’s green there.

I don’t get any error message in the output log. In 4.26 the log reaches “Compacting FUObjectHashTables data took 0.25ms”.

uT

I’m also able to successfully deploy but crashing on app launch - Quest (and Quest 2) with 4.26.0 ( Everything was working in Preview 5/6/7) - It seems like only a few people are affected.

Before launching onto device bring up Window -> Developer Tools -> Device Output Log - and select your Quest (Easier to see the callstack here than digging in saved/logs/ on device)

Are you seeing this as first ‘backtrace’ in device output log?
#00 pc 05dc65e0 /data/app/com.YourCompany.FouTwoSix-0VUUJ4peETxbWVN9b9xarQ==/lib/arm/libUE4.so (TRefCountPtr<FRHITexture2D>operator=(FRHITexture2D*)+40)

I don’t see anything looking like the line you’re mentioning in the Device Output Log. I do have many instances of this error (in red): Failed to find /OculusVR/Materials/PokeAHoleMaterial. Also, a couple other warnings (yellow) regarding the sRGB profile (not matching) including this: Failed to find object ‘Material None./OculusVR/Materials/OculusMR_ChromaKey’.

These things don’t appear when launching with 4.25.4.

This is opaque.

uT

On Ue 4.26 OpenGL ES 3.1 not working this is your problelm. try to make packet with Vulckan it is working but vulckan it is 30% heavier you will have a problem with FPS :frowning:
USE for NDK API LEVEL android-26 minimunm sdk 25 target skd 25 that i use and working.

Thanks, xenofon. I can’t activate Vulkan on my project. I activated it in Project Settings and it crashed at my first click in the main window. It crashed upon opening the editor every time after that. I tried reimporting my project in 4.26.0 from 4.25.4 but it crashes upon opening (editor) as well. This last thing is new. I had no problem opening the project in the editor in 4.26.0 before.

It could command a new install of 4.26. More on this later.

find on Andorid Buld and acivate Detect Vulkan Device support

Some progress, but no victory.

Activating Vulkan with or without Detect Vulkan Device support doesn’t solve the issue.

For some weird reason, I had this message with the failed (or more precisely stalled) launch in the Device Output Log:

Error: Couldn’t find file for package /OculusVR/Materials/PokeAHoleMaterial requested by async loading code. NameToLoad: /OculusVR/Materials/PokeAHoleMaterial

The line also appears for other materials that are in the plugin folder of the engine (OculusMR_ChromaKey, OculusMR_OpaqueColoredMaterial)

I found a solution elsewhere here for that specific thing: You have to add the directory /OculusVR/Materials from the pull-down menu to this item in the project settings:

Project Settings > Packaging > Additional Asset Directories to Cook = (select OculusVR/Materials)

This got the project to launch in the Quest 2. I could briefly see my startup map in front of me on a rectangular or square surface before the thing crashed. That completed the launch on my computer.

I created a test project with an empty map (the generic piece of floor) and a moving pawn. It needed the previous Additional Asset Directory trick to work. That was stable.

It went south when I tried to add a widget attached to the camera. Instant crash upon opening. Deleting the widget brought back the previous stable state of the thing.

I have widgets and stereo layers in my current project.

So, my 2 cents diagnosis. There’s an issue with widgets in 4.26.0 on the Quest 2 for me and my fellow sufferers. There’s also something with the location of OculusVR Materials.

Again, all that works smoothly with 4.25.4 on the Quest 2.

uT

UE 4.26.0
minimum SDK = 25, target SDK = 25, NDK API level = android-30, SDK = matchndk (21 in this case)
OpenGL ES 3.1
Xcode 12.3
Android Studio 3.5.3

I also can not get the game to Launch from UE 4.26 to Oculus Quest 2. I am testing with the default VR template. Just a black screen, it doesn’t look the game actually launches. I see no errors or warnings. 4.25.4 worked fine.

*Edit - The above issue was because I forgot to enable Android SDK Writing License or whatever when I created a new project for migration. It still crashes on load unfortunately.

LogHMD: Error: FOculusHMDModule::GetPluginWrapper().BeginFrame4 0 failed (-1003)

^^^ That and something about the Steam VR Chaperone not happy.

Oh and intermittent between those there is the Android Gradle error. This one is easily solved by deleting the Android files in the Intermediate folder. Then back to all the other errors.

I understand that you don’t get the error messages for materials not found. This might mean that you are a tad closer to a solution. It still won’t find some materials without adding their directory specifically, but that may be a macOS quirk.

At first, 4.26 wouldn’t open a copy of my 4.25.4 project at all. It would crash at 95%. I got it to open by creating a new project in 4.26.0, gutting it of everything and then migrating my whole project (from the top content folder) to that new project.

With the new project that I have created for testing, I can now create a widget and a stereo layer in it and have it to launch correctly in 4.26.0. What it wouldn’t want to do earlier (crash upon opening) was to to deal with an imported widget that had bindings and scripts attached.

It just tells me that it can work, but it’s an ordeal.

I wish the packaging process was more robust in general. Packaging to VR is even more fragile than usual (which is already extremely fragile). About a third of my time is spent kicking the packaging process until the game gets out running. If I ever am able to expand as a game company, my first hiring will be someone to manage the packaging process so I can continue developing while they hash out the onslaught of stupid little issues keeping the game from packaging/running. I wouldn’t of guessed that would be the case. /End rant

I finally launched to Oculus Quest 2 from ue 4.26. I have been able to launch (successful 4 times now) after unplugging a Collision Enabled node. I had a sphere collision and a node simply turned the collision from off to on using Set Enabled Collision (Query Only). Unplugging that node allows me to launch, plugging in the node causes the launch to quit a second or so after launch with the following errors:

LogPlayLevel: Error: 12-29 10:55:42.256 16266 16300 D UE4 : [2020.12.29-18.55.42:256] 0]LogStreaming: Error: Missing Dependency, request for /Script/SteamVR.SteamVRChaperoneComponent but it hasn’t been created yet.
LogPlayLevel: Error: 12-29 10:55:42.256 16266 16300 D UE4 : [2020.12.29-18.55.42:256] 0]LogStreaming: Error: Could not find class SteamVRChaperoneComponent to create SteamVRChaperone_GEN_VARIABLE

LogPlayLevel: Error: 12-29 10:55:44.619 16266 16424 D UE4 : [2020.12.29-18.55.44:619] 0]LogHMD: Error: FOculusHMDModule::GetPluginWrapper().BeginFrame4 0 failed (-1003)

I have no idea what the connection is between the collision and those errors (or if I am mistaken somehow) but as of now I am launching.

Im not sure why that error is triggered with the Collision Enable node, but I believe that error is because of the steam references in the Motion Controller Pawn. I had to removed any blueprints referencing steam to fix something like that.

Update, I am getting the Accessed None Steam VR Chaperone error again. Sometimes it pops up and sometimes it doesn’t. I know SteamVRChaperone is a component in the motion controller but I don’t know why it gives me the error when it does or why it doesn’t when it doesn’t. Sometimes it crashes when overlap collisions are spawned, sometimes it crashes a second after the game starts and sometimes it works fine.

After deleting the SteamVR component, I can get into the game but am crashing on any spawning of overlap collisions. It does not appear to be related to a widget but I can’t verify that for certain now. This set of errors occurs when a collision overlaps:

LogPlayLevel: Error: 12-29 20:09:49.938 20176 20242 D UE4 : [2020.12.30-04.09.49:938] 31]LogHMD: Error: FOculusHMDModule::GetPluginWrapper().BeginFrame4 0 failed (-1003)
LogPlayLevel: Error: 12-29 20:09:49.941 20176 20242 D UE4 : [2020.12.30-04.09.49:941] 32]LogHMD: Error: FOculusHMDModule::GetPluginWrapper().BeginFrame4 1 failed (-1003)
LogPlayLevel: Error: 12-29 20:09:49.945 20176 20242 D UE4 : [2020.12.30-04.09.49:945] 33]LogHMD: Error: FOculusHMDModule::GetPluginWrapper().BeginFrame4 2 failed (-1003)
LogPlayLevel: Error: 12-29 20:09:49.954 20176 20242 D UE4 : [2020.12.30-04.09.49:954] 35]LogHMD: Error: FOculusHMDModule::GetPluginWrapper().BeginFrame4 3 failed (-1003)
LogPlayLevel: Error: 12-29 20:09:49.957 20176 20242 D UE4 : [2020.12.30-04.09.49:957] 36]LogHMD: Error: FOculusHMDModule::GetPluginWrapper().BeginFrame4 4 failed (-1003)
LogPlayLevel: Error: 12-29 20:09:49.966 20176 20242 D UE4 : [2020.12.30-04.09.49:966] 37]LogHMD: Error: FOculusHMDModule::GetPluginWrapper().BeginFrame4 5 failed (-1003)
LogPlayLevel: Error: 12-29 20:09:49.971 20176 20242 D UE4 : [2020.12.30-04.09.49:971] 37]LogHMD: Error: FOculusHMDModule::GetPluginWrapper().BeginFrame4 6 failed (-1003)
LogPlayLevel: Error: 12-29 20:09:49.978 20176 20242 D UE4 : [2020.12.30-04.09.49:978] 39]LogHMD: Error: FOculusHMDModule::GetPluginWrapper().BeginFrame4 7 failed (-1003)
LogPlayLevel: Error: 12-29 20:09:49.983 20176 20242 D UE4 : [2020.12.30-04.09.49:983] 39]LogHMD: Error: FOculusHMDModule::GetPluginWrapper().BeginFrame4 8 failed (-1003)
LogPlayLevel: Error: 12-29 20:09:49.986 20176 20242 D UE4 : [2020.12.30-04.09.49:986] 40]LogHMD: Error: FOculusHMDModule::GetPluginWrapper().BeginFrame4 9 failed (-1003)
LogPlayLevel: Error: 12-29 20:09:49.991 20176 20242 D UE4 : [2020.12.30-04.09.49:991] 42]LogHMD: Error: FOculusHMDModule::GetPluginWrapper().BeginFrame4 10 failed (-1003)
LogPlayLevel: Error: 12-29 20:09:49.999 20176 20242 D UE4 : [2020.12.30-04.09.49:999] 43]LogHMD: Error:

*Update: a slightly older version of the same project is launching without error in UE 4.25.4. I am gonna rebuild back to where I was in the 4.26 copy. The collision overlaps that appear to crash 4.26 work fine in 4.25.4. I also get no warnings or errors about the SteamVR Chaperone even though this older file has it in.

Print strings are causing crashes for me in 4.26 on Oculus Quest

A victory and a defeat (but the concern I expressed at the top of this thread is solved).

I can now launch with UE 4.26.0 on the Quest 2. It is stable (stereo layers included). What solved the issue may not be necessary in a future release. It could well be a solution for me alone. I have no external reference apart from what I read in the usual forums.

I identify three factors in my solution :

  1. I have to include “OculusVR/Materials/” in the Project Settings > Packaging > Additional Assets Directories to Cook". This may be unique to my setup. I will not investigate this further unless it turns out to be a problem again in the future.
  2. Stereo layers and widgets must not be components of the Pawn. Again, I suspect this is some peculiarity of my setup. Widgets and layers as Pawn components worked fine in 4.25.4. It helped advancing toward a solution in this process because it was possible to see something in the Quest 2 after moving widgets and stereo layers in a separate BP. It is not said that I could not move them back in the pawn structure now that the whole thing seems to be fixed. I won’t try to see anytime soon unless it is needed. I suppose it would work now, but that’s nothing empirical or scientific.
  3. I have to use the Project Launcher and set Build > Shipping instead of Development. I believe Build has to be selected in the upper right corner of the section as well (not Detect automatically – I can’t be sure it’s optional but it works when set at Build). Launching from the toolbar icon will go all the way, but instantly crash in the Quest 2.

So, this is what it takes for things to work for me with UE 4.26.0 and the Quest 2 on (macOS 10.15.7 – Android Studio 3.5.3 – Xcode 12.3).

Now, the defeat :

  • The morning following the preceding finding of a solution, the Quest 2 display went black. Tried everything. I’m waiting for Oculus to fix this and it doesn’t seem like it will happen fast. But, that’s another story and I will post about it in the proper Oculus forum.

uT

Hi guys,
can someone kind would share a simple scene converted /built to apk? I would like to test an apk that works for sure with my Quest 2.

Thank you.

Nemsi! This thread is not a good place to ask that question. Tea For God by void room

I was able to resolve this by disabling print strings (Console command ‘disableallscreenmessages’ on begin play will do the trick) (cheers xadamxful) - Might be related to Stereo Layer weirdness upTheo is mentioning.(Print strings happen on their own layer)

(4.26.0)

I’m new to the Q2 and starting my tests with the template project and on 4.26 experiencing the same issue (issue being 3 looping dots with a black scene).
Trying a few things now and will report back with results.

Worst case I guess I’ll test on 4.25. Something has to work…

I’ll also add that I can’t seem to use the “Launch” feature to deploy and run with the device connected to unreal. It never finishes the “Building” state and gets stuck trying to open the activity it seems. Anyone know anything about this? I’ll probably start a new thread on it if I can’t get anywhere.

EDIT: OLD

Quick update and something odd.

I made a new VR Template build on 4.26 set up everything but decided to leave Mobile HDR checked.
The template worked, I could mess around in the motioncontroller map.

Then I decided to uncheck Mobile HDR, restart editor, and try again.
Looping 3 dots.

Then I tried to check Mobile HDR, restart and still had looping 3 dots.

Perhaps something that 4.26 does isn’t really doing a good job with the restart there but still just making sense of this.

EDIT: NEW

Due to a mistake on my part for packaging to the wrong folder, I had used the build that had Mobile HDR disabled.

In short, keeping Mobile HDR enabled allows the unreal VR template to run well on the Quest 2 with no looping dots and a black screen.

That said I haven’t done further testing with print screen but might be related.

Also might be worth checking out some Oculus Specific VR samples since they recommend turning Mobile HDR off.