Closed ChristianSchott closed 1 month ago
Seems like the latest official release of xbuild
is outdated (https://github.com/rust-mobile/xbuild/issues/151).
Installing xbuild
from git directly resolves the issue cargo install --git https://github.com/rust-mobile/xbuild.git
.
Now the libopenxr_loader.so
is packaged into the .apk
.
Maybe this is useful to someone..
x build --release -p bevy_openxr_android --platform android --arch arm64 --format apk
for building an apk of the android examplex run --release -p bevy_openxr_android --device adb:[your device id]
for directly running on a connected device (e.g. your quest). x devices
or adb devices
for finding you device id (assuming you have adb
installed)
Hi, sorry if this is a dumb question, I am pretty new to cross-platform building with Rust.
I have tried building and running the
example/android
app for Quest3 usingx run --device [...] --release
, which worked fine, but inside the headset I am stuck on a black loading screen, and the only way out seems to be to restart the headset. (this is likely a duplicate of !137)Looking in the logs, I assume that this is the root cause of the problem:
Failed to initialize openxr: OpenXR loading error: dlopen failed: library "libopenxr_loader.so" not found
However, the provided build script did seem to work properly, and I assumed that
xbuild
would automatically package theruntime_libs
into the build.Does anyone know what is going wrong here?
Great work btw! I have already played around with it a bit, running on the desktop and connecting via Link.
Full Log
[1/3] Fetch precompiled artifacts info: component 'rust-std' for target 'aarch64-linux-android' is up to date [1/3] Fetch precompiled artifacts [91ms] [2/3] Build rust `bevy_openxr_android` [EDIT: removed some warnings] Finished `release` profile [optimized] target(s) in 0.33s [2/3] Build rust `bevy_openxr_android` [401ms] [3/3] Create aab [2640ms] C:\Users\Chris\Documents\Git\bevy_oxr\target\x\release\android\bev...ab: 1 file pushed, 0 skipped. 31.8 MB/s (23122057 bytes in 0.693s) Success Starting: Intent { act=android.intent.action.MAIN cmp=org.bevyengine.example_openxr_android/android.app.NativeActivity } pid of org.bevyengine.example_openxr_android is 5458 --------- beginning of main 5458 5458 E _openxr_androi: Not starting debugger since process cannot load the jdwp agent. 5458 5458 D CompatibilityChangeReporter: Compat change id reported: 171979766; UID 10008; state: ENABLED 5458 5458 W System : ClassLoader referenced unknown path: 5458 5458 V GraphicsEnvironment: ANGLE Developer option for 'org.bevyengine.example_openxr_android' set to: 'default' 5458 5458 V GraphicsEnvironment: ANGLE GameManagerService for org.bevyengine.example_openxr_android: false 5458 5458 V GraphicsEnvironment: Neither updatable production driver nor prerelease driver is supported. 5458 5458 D CompatibilityChangeReporter: Compat change id reported: 175409949; UID 10008; state: DISABLED 5458 5458 D CompatibilityChangeReporter: Compat change id reported: 175409951; UID 10008; state: ENABLED 5458 5458 D CompatibilityChangeReporter: Compat change id reported: 175409956; UID 10008; state: DISABLED 5458 5458 D CompatibilityChangeReporter: Compat change id reported: 175409950; UID 10008; state: DISABLED 5458 5458 D NetworkSecurityConfig: No Network Security Config specified, using platform default 5458 5458 D CompatibilityChangeReporter: Compat change id reported: 175409952; UID 10008; state: DISABLED 5458 5458 D NetworkSecurityConfig: No Network Security Config specified, using platform default 5458 5458 I VrosSpatialAudio: init with null 5458 5458 W android_main: type=1400 audit(0.0:100): avc: denied { read } for name="cpu.cfs_quota_us" dev="cgroup" ino=46 scontext=u:r:untrusted_app:s0:c8,c256,c512,c768 tcontext=u:object_r:cgroup:s0 tclass=file permissive=0 app=org.bevyengine.example_openxr_android 5458 5488 I event C:\Users\Chris\.cargo\registry\src\index.crates.io-6f17d22bba15001f\bevy_diagnostic-0.14SystemInfo { os: "Android 12 Quest 3", kernel: "5.10.198-01553-ge399b8f74d20", cpu: "not available", core_count: "6", memory: "7.6 GiB" } 5458 5488 E event crates\bevy_openxr\src\openxr\init.rs:170: Failed to initialize openxr: OpenXR loading error: dlopen failed: library "libopenxr_loader.so" not found 5458 5488 D vulkan : searching for layers in '/data/app/~~Gs237Q-5foOotbraIEu1PA==/org.bevyengine.example_openxr_android-VD9vhia20L5R5uYwWBORsA==/lib/arm64' 5458 5488 D vulkan : searching for layers in '/data/app/~~Gs237Q-5foOotbraIEu1PA==/org.bevyengine.example_openxr_android-VD9vhia20L5R5uYwWBORsA==/base.apk!/lib/arm64-v8a' 5458 5488 W Adreno-AppProfiles: Could not find QSPM HAL service. Skipping adreno profile processing. 5458 5488 I AdrenoVK-0: ===== BEGIN DUMP OF OVERRIDDEN SETTINGS ===== 5458 5488 I AdrenoVK-0: ===== END DUMP OF OVERRIDDEN SETTINGS ===== 5458 5458 W android_main: type=1400 audit(0.0:101): avc: denied { read } for name="cpu.cfs_period_us" dev="cgroup" ino=47 scontext=u:r:untrusted_app:s0:c8,c256,c512,c768 tcontext=u:object_r:cgroup:s0 tclass=file permissive=0 app=org.bevyengine.example_openxr_android 5458 5458 W android_main: type=1400 audit(0.0:102): avc: denied { read } for name="cpu.cfs_quota_us" dev="cgroup" ino=10 scontext=u:r:untrusted_app:s0:c8,c256,c512,c768 tcontext=u:object_r:cgroup:s0 tclass=file permissive=0 app=org.bevyengine.example_openxr_android 5458 5458 W android_main: type=1400 audit(0.0:103): avc: denied { read } for name="cpu.cfs_period_us" dev="cgroup" ino=11 scontext=u:r:untrusted_app:s0:c8,c256,c512,c768 tcontext=u:object_r:cgroup:s0 tclass=file permissive=0 app=org.bevyengine.example_openxr_android 5458 5488 I AdrenoVK-0: QUALCOMM build : 445fc2bdf5, I545b8eff08 5458 5488 I AdrenoVK-0: Build Date : 08/01/24 5458 5488 I AdrenoVK-0: Shader Compiler Version : E031.47.01.00 5458 5488 I AdrenoVK-0: Local Branch : 5458 5488 I AdrenoVK-0: Remote Branch : refs/tags/AU_LINUX_ANDROID_LA.VENDOR.12.3.11.00.00.934.442 5458 5488 I AdrenoVK-0: Remote Branch : NONE 5458 5488 I AdrenoVK-0: Reconstruct Branch : NOTHING 5458 5488 I AdrenoVK-0: Build Config : S P 12.1.6 AArch64 5458 5488 I AdrenoVK-0: Driver Path : /vendor/lib64/hw/vulkan.adreno.so 5458 5488 I AdrenoVK-0: Driver Version : 0786.0 5458 5488 I AdrenoVK-0: PFP : 0x01511175 5458 5488 I AdrenoVK-0: ME : 0x00000000 5458 5488 I AdrenoVK-0: Application Name : wgpu 5458 5488 I AdrenoVK-0: Application Version : 0x00000001 5458 5488 I AdrenoVK-0: Engine Name : wgpu-hal 5458 5488 I AdrenoVK-0: Engine Version : 0x00000002 5458 5488 I AdrenoVK-0: Api Version : 0x00403000 5458 5488 I AdrenoGLES-0: QUALCOMM build : 445fc2bdf5, I545b8eff08 5458 5488 I AdrenoGLES-0: Build Date : 08/01/24 5458 5488 I AdrenoGLES-0: OpenGL ES Shader Compiler Version: E031.47.01.00 5458 5488 I AdrenoGLES-0: Local Branch : 5458 5488 I AdrenoGLES-0: Remote Branch : refs/tags/AU_LINUX_ANDROID_LA.VENDOR.12.3.11.00.00.934.442 5458 5488 I AdrenoGLES-0: Remote Branch : NONE 5458 5488 I AdrenoGLES-0: Reconstruct Branch : NOTHING 5458 5488 I AdrenoGLES-0: Build Config : S P 12.1.6 AArch64 5458 5488 I AdrenoGLES-0: Driver Path : /vendor/lib64/egl/libGLESv2_adreno.so 5458 5488 I AdrenoGLES-0: Driver Version : 0786.0 5458 5488 I AdrenoGLES-0: Process Name : org.bevyengine.example_openxr_android 5458 5488 I AdrenoGLES-0: PFP: 0x01511175, ME: 0x00000000 5458 5488 W Adreno-AppProfiles: Could not find QSPM HAL service. Skipping adreno profile processing. 5458 5488 I AdrenoUtils:Edit: after unpacking the .apk(/.aab) I noticed that the
libopenxr_loader.so
is indeed missing, so I guess the problem is withxbuild
not including theruntime_libs
properly?