Trying to deploy to Quest 1, but Remote Debug always stops at "Installing to Device, please wait...66%" and Godot locks until I disconnect the headset. Normal Android games deploy with no issues

I’m trying to deploy an empty scene to my Quest 1 but when I press the Remote Debug button, as explained in the title, I don’t get pass Installing to Device, please wait...66%".

I tried deploying to an Android phone instead and no issues there, my game is deployed perfectly.

Here are a few things I notice when I try deploying to the Quest 1:

  • If I deploy by running ./adb -s SERIALNUMBER install -r /dir/game.apk, I’m later stuck at Performing Streamed Install.

  • When I try deploying from Godot, it’s stuck in the “Installing to device” message I mentioned earlier, but when I disconnect the cable, it mentions Performing Streamed Install in the “broken pipe” error message.

  • When running logcat, I see all kinds of activity in the terminal, but as soon as I run ./adb -s SERIALNUMBER install -r /dir/game.apk or deploy from Godot, messages stop coming in, logcat is silent, until I physically disconnect the Quest.

I made sure to follow the documentation:

  • Enabled XR (and shaders) in the XR Project Settings

  • Added the following plugins from the Asset Library:

  • Godot XR Tools for Godot 4

  • Godot XR Android OpenXR Loaders

  • Also enabled Godot XR Tools in the Project Settings

  • Installed Android Build Template

  • I had Android Studio installed before

  • Made sure to Import ETC2 ASTC

  • Made sure XR Mode is is OpenXR, Use Gradle Build is enabled

  • Made sure to setup all the Export Android settings in Editor Settings. I’m running into zero issues when I go to Export and able to build an APK with no issues.

In fact, if I kill the connection between the headset and the computer, then kill Godot in htop, I can’t re-open any project until I adb kill-server.

Running adb devices of course shows that my Quest is attached and set to device status. Made sure it wasn’t offline at any point.

I’m not sure what to do and running out of ideas :frowning: Oh and if it helps this is what I’m running:

  • Ubuntu 22.04.4 LTS (updated)
  • Latest Nvidia Drivers for Ubuntu (proprietary drivers): nvidia-driver-535
  • Godot 4.2.2 Stable
  • Android SDK Platform 33
  • Android SDK Build-Tools: 33.0.02
  • NDK: 23.2.8568313
  • Android SDK Command-line Tools (Latest)
  • CMake 3.10.2.4988404
  • Android SDK Platform-Tools: 35.0.0
  • openjdk 17.0.10 2024-01-16
  • OpenJDK Runtime Environment (build 17.0.10+7-Ubuntu-122.04.1)
  • OpenJDK 64-Bit Server VM (build 17.0.10+7-Ubuntu-122.04.1, mixed mode, sharing)

@donniedarko the only thing that stands out in that writeup is that you are using Godot 4.2.2 and installed the OpenXR Loaders plugin. The loaders plugin is for Godot 4.1 and earlier. Godot 4.2.x requires you to use the new OpenXR Vendors plugin instead.

What is also new is that Meta now requires your app to tell it on which quest models it will run, as games that support Quest 3 can not be marked as supporting Quest 1. You will find new settings for this in the export preset after installing the vendors plugin, and you will see that Quest 1 by default is disabled. You will need to enable it and disable Quest 3 support.

My guess is that once your app is validated at the end of uploading it, the Quest panics instead of giving a nice “this app is not suitable for this platform” message.

Thank you very much for the response!

So I actually downloaded the pre-compiled release build of OpenXR Loaders plugin, and now I’m able to select Quest 1 in the export menu.

However, the issue continues happening. I even tried to create another project.

I only downloaded that Loaders Plugin though, should I also download godot-xr-tools/?