Jump to content


Verified Members
  • Posts

  • Joined

  • Last visited


0 Neutral

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. Hi, yes arm64 should be selected. Uh that was my mistake I looked in the wrong project. Below are the correct versions I use 😊 NDK: 21.4.7075529 Build Tools: Gradle Plugin: 7.4.2 Gradle: 7.5 Cmake: 3.10.2 Did you progress further with the build? Thanks again.
  2. Hi, thanks for still trying! I never encountered that issue. You might have not installed the correct version of cmake. Try the following versions: SDK: 29 NDK: 25.2.9519653 Gradle Plugin: 4.1.3 Gradle: 6.5 CMake: 3.10.2 The above versions are what I am using.
  3. Hello just wanted to ask if there is any progress on this issue and if you will look into the issue at all. It would be very helpful for us to have some insight on what's going on and how to tackle this. Thanks for the information.
  4. You should just be able to run any configuration directly. What's the issue when compiling? Maybe you need to get the required dependencies. (correct sdk version, ndk, cmake, etc)
  5. Hi, I was able to make a sample which is based on the hello_xr project from OpenXR. Unfortunately the project was too big to upload here, so I put it on a WeTransfer https://we.tl/t-G7tnwnSVD2 where you can download it. Run the project: Open the android studio project located in the folder "OpenXR-SDK-Source\src\tests\hello_xr". If you want to switch to a single activity workflow to test the behaviour, just use the PlayerActivity as the Main/Launch Activity. If you need any further information please let me know! Thanks for the help.
  6. Sure thing, but then I will have to create a reproduction example before. I will have time to do this on Thursday/Friday. In the meantime, if you have any further suggestions feel free to let me know.
  7. Hi, thanks for the answer! I am not using any SDK since I am making a native Android application. As far as I understand this is only required for Unity/Unreal projects. In my case, I am just using the required OpenXR Loader stated here (https://developer.vive.com/resources/openxr/unity/download/latest/) which then launches the already installed OpenXR Runtime already installed on the device. I am currently just using some modified version of the hello_xr example by Khronos and Android Studio in conjunction with the Native development stuff (NDK, Cmake, Gradle, etc..) to make an APK that installs on the device.
  8. Hello, I am required to develop an OpenXR application with Java/C++ that has support for Android Activity switching. I reverse engineered the HTC unity package to determine the correct stuff that needs to be in the Android Manifest file and to be able to create this in a simple android studio project. My project structure should look like the following. An Android application with 2 activities. The "MAIN" activity is just a 2D activity (could also be an OpenXR 'immersive' activity, depending on our future needs). This main activity is used to provide some input and latter on open the 2nd activity via an Android Intent. The second activity is basically on OpenXR application based on the hello_xr application provided by Khronos. Now the issue is that when it comes to switching from the main activity to the second one. I am currently switching via a simple Intent where I specify the target activity. This all works great because it calls the android_main() of the 2nd activity and executes the code (creatiion of an openxrinstance / session / etc) until it comes to the actual rendering of the layers where the OpenXR runtime just passes the "shouldRender = false" flag in the xrWaitFrame() (https://registry.khronos.org/OpenXR/specs/1.0/man/html/xrWaitFrame.html). This stays like that forever (tested for at least a minute), so I am assuming it dead locked somewhere. Investigating logcat does not show any errors at all only a specific line that is printed forever while the screen stays black. Googling that line yields nothing so I am assuming it is something internal. RENDER_ATWC: Prvious PredictedDisplay:11310562046231 >= New PredictedDisplay:11310561646160, Set New PredictedDisplay to 11310561746160 The application part of my android manifest looks like this: (When using the PlayerActivity as a startup activity everything works fine and the OpenXR application runs as expected) <application android:allowBackup="false" android:extractNativeLibs="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name"> <activity android:name=".MainActivity" android:configChanges="screenSize|screenLayout|orientation|keyboardHidden|keyboard|navigation|uiMode|density" android:excludeFromRecents="false" android:exported="true" android:launchMode="singleTask" android:resizeableActivity="false" android:screenOrientation="landscape" android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen" tools:ignore="NonResizeableActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> <category android:name="org.khronos.openxr.intent.category.IMMERSIVE_HMD" /> </intent-filter> </activity> <activity android:name=".PlayerActivity" android:configChanges="screenSize|screenLayout|orientation|keyboardHidden|keyboard|navigation|uiMode|density" android:excludeFromRecents="false" android:exported="true" android:launchMode="singleTask" android:resizeableActivity="false" android:screenOrientation="landscape" android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen" tools:ignore="NonResizeableActivity"> <!-- Tell NativeActivity the name of the .so --> <meta-data android:name="android.app.lib_name" android:value="lib-name" /> <intent-filter> <!-- <action android:name="android.intent.action.MAIN" />--> <!-- <category android:name="android.intent.category.LAUNCHER" />--> <category android:name="org.khronos.openxr.intent.category.IMMERSIVE_HMD" /> </intent-filter> </activity> If you want the full log of one run, I could also provide that. In order to reproduce the issue, its possible to use the hello_xr sample and extend it with a new Java activity that opens the hello_xr activity. I would be glad to receive any input on that matter, because I have now been trying a lot of different stuff already and I have a feeling that it is somehow related to the underlying OpenXR runtime and I have no idea how to debug that.
  9. Hello, I am trying to build an Android app that initializes the OpenXR Runtime in C++ for the HTC Vive Focus 3 The problem is that the application fails at the xrCreateInstance() method provided by the OpenXR loader, which should pass the requested function to the runtime. The encountered error seems to be an access violation (SIGSEV) due to a nullptr, when trying to find the xrCreateInstance method in the runtime. (maybe the function does not exist?). The stacktrace of the error: art_sigsegv_fault 0x00000077a19766dc art::FaultManager::HandleFault(int, siginfo*, void*) 0x00000077a1976be0 art::SignalChain::Handler(int, siginfo*, void*) 0x000000566c858ec4 __kernel_rt_sigreturn 0x0000007828ce8678 <unknown> 0x0000007734936ae8 RuntimeInterface::CreateInstance(const XrInstanceCreateInfo *, XrInstance_T **) runtime_interface.cpp:457 LoaderXrTermCreateInstance(const XrInstanceCreateInfo *, XrInstance_T **) loader_core.cpp:423 LoaderInstance::CreateInstance(XrResult (*)(XrInstance_T *, const char *, void (**)()), XrResult (*)(const XrInstanceCreateInfo *, XrInstance_T **), XrResult (*)(const XrInstanceCreateInfo *, const XrApiLayerCreateInfo *, XrInstance_T **), std::__ndk1::vector<…>, const XrInstanceCreateInfo *, std::__ndk1::unique_ptr<…> *) loader_instance.cpp:250 LoaderXrCreateInstance(const XrInstanceCreateInfo *, XrInstance_T **) loader_core.cpp:275 xrCreateInstance(const XrInstanceCreateInfo *, XrInstance *) loader_core.cpp:835 main_body() list_json.cpp:137 The basics steps I took were: Grabbed an OpenXR loader According to https://developer.vive.com/resources/openxr/unity/download/latest/ is is compatible with the OpenXR loader v1.0.26 Created an Android studio project with a native plugin in c++ Created a project according to https://registry.khronos.org/OpenXR/specs/1.0/loader.html#runtime-interaction This explains how to setup the android manifest so that the loader is able to load a runtime. Added a few lines of code to enumerate OpenXR features and then start the instance. What I already tried: Created my own Android app with a Native side. Error encountered. Built the Android sample app by Khronos using this repo: https://github.com/KhronosGroup/OpenXR-SDK-Source. Same error. Enumerating the features creating the instance. This works fine, the runtime lists a total 22 supported features. Used a selection of different OpenXR loaders. All of them encounter the same issue. Running a the handtracking unity sample to see if it is an issue with the device. Works. If anybody has already done something similar I would be glad on some insight about what I might have missed. Does it maybe need some preconfiguration? Kind regards Philipp
  • Create New...