Android Studio 无法构建Oculus OpenXR移动的SDK和Oculus Mobile SDK的任何项目

r6hnlfcb  于 2023-06-06  发布在  Android
关注(0)|答案(1)|浏览(457)

Oculus OpenXR移动的SDK和Oculus Mobile SDK示例项目的配置方式使得现代版本的Android Studio(例如Android Studio Flamingo)无法正确加载。
https://developer.oculus.com/documentation/native/android/mobile-studio-setup-android/中的文档已经过时,在这个过程中没有太大帮助。

oxiaedzo

oxiaedzo1#

我已经花了2天时间让SDK项目工作,这篇文章是为了让你保存这两天。 事实是,与Android Studio构建系统相关的一切都非常令人沮丧,因为您必须单独配置许多组件,这些组件通常彼此不兼容,而且很多时候Android Studio使用缓存信息,您必须告诉它清除该高速缓存以处理您所做的更改等。 此外,SDK项目的构建方式导致Android Studio无法正确管理它们,并出现问题:
1.当选择 * 文件/项目结构 * 时,*Android Gradle插件版本 * 和 *Gradle版本 * 字段始终显示为空,即使您输入一些值,也没有用:没有文件被修改,如果你再次打开对话框,它们又是空的。
1.如果检测到有更新版本的 *Gradle插件 *,向导将无法定位活动版本(尽管奇怪的是,它已经检测到有更新版本,因此理论上它知道您处于哪个版本)。

  1. Android Studio无法找到文件 gradle-wrapper.properties。在 * 文件/设置/构建、执行、部署/Gradle* 中,如果您选择从以下位置使用Gradle:gradle-wrapper.properties 文件,它将显示一个错误,指示它没有找到文件 gradle-wrapper.properties。 本教程将获取在Android Studio Flamingo中编译的项目|2022.2.1补丁2是今天(2023年5月5日)的最新版本,我们还将Gradle插件更新到7.0.2版本(因为我无法使其在7.4.2中工作)。 我已经在Windows上运行了所有的东西,事实是我太懒了,不想在Mac或Linux上尝试所有的东西,所以我希望即使你的操作系统不是Windows,至少这些步骤会对你有所帮助。我将在一台安装了干净Windows的虚拟机上执行这些步骤,这台机器从未安装过Android Studio或Java或其他任何东西,我将在不创建任何环境变量的情况下执行所有操作。
    1.下载并安装Android Studio。
    1.用SDK下载zip,我下载了 * ovr_openxr_mobile_sdk_53.0.zip *。解压吧。
    1.用Android Studio打开任何一个项目,我都打开了 (OculusSDKRoot)XrSamples\XrSpatialAnchor\Projects\Android 文件夹。 Android Studio将开始下载和执行库,过了一段时间,它会向您显示如下错误:

正如你所看到的,它告诉我们在环境变量或 (OculusSDKRoot)\local.properties 文件(SDK中不存在)中添加SDK的路径。4.使用下一个内容创建文件 (OculusSDKRoot)\local.properties(将“Josea”更改为您的用户名)。

sdk.dir=C\:\\Users\\Josea\\AppData\\Local\\Android\\Sdk

1.单击 * 将项目与Gradle文件同步 * 按钮或选择 * 文件/将项目与Gradle文件同步 * 菜单选项。此时将显示以下错误消息:

表示我们必须安装兼容的NDK,并且它们表示默认版本为21.0.6613669。 6.在工具栏中,按 SDK Manager 按钮(带有向下箭头的3D立方体)或通过选择菜单选项 File/Setttings 并选择左侧的选项 Appareance & Behavior/System Settings/Android SDK。7.在 SDK Platforms 选项卡中选择 Android 8.0(Oreo),因为这是API级别为26的Android版本,该版本是SDK项目配置的版本号。8.在 SDK Tools 选项卡中,单击 Show Package Details 复选框以显示组件的不同版本,然后打开 NDK(并排) 并选择版本21.0.6613669并接受。
1.单击 * 将项目与Gradle文件同步 * 按钮或选择 * 文件/将项目与Gradle文件同步 * 的菜单选项。此时将显示以下错误消息:

1.导致此错误的原因是,此版本的Android Studio默认使用的JDK版本与项目配置的 *Gradle插件 * 版本和 Gradle 版本不兼容。
1.打开 (OculusSDKRoot)build.gradle 文件。在那里,您可以找到我们有以下行:

classpath 'com.android.tools.build:gradle:4.0.0'.

4.0.0.0是程序配置的 Graddle Plugin 版本。此插件必须与特定版本的 Gradle 一起运行,反过来,此版本的 Gradle 必须与特定版本的 Java 一起运行。 如果您访问https://developer.android.com/build/releases/gradle-plugin#updating-gradle并单击 * 旧版本 * 按钮,您将看到4.0.0.0版本的插件需要Gradle 6.1.1版本,而此版本的Gradle我们必须查找与之对应的Java版本。 由于它是一个非常过时的版本,我们将更新所有内容,因此修改文件 (OculusSDKRoot)build.gradle 并将该行更改为版本7.0.2。如果您查看该表(https://developer.android.com/build/releases/gradle-plugin#updating-gradle),则插件版本7.0所需的Gradle版本为7.0。现在我们只需要知道Gradle 7.0必须运行的Java版本。如果您访问https://developer.android.com/build/releases/gradle-plugin#updating-gradle,您可以检查它是否是版本16。 12.修改文件 (OculusSDKRoot)build.gradle,将Gradle插件版本改为7.0.2:

classpath "com.android.tools.build:gradle:7.0.2"

1.对文件 (OculusSDKRoot)VrApp.gradle 执行相同的操作
1.现在我们必须指定与此插件版本对应的 Gradle 版本。版本在Oculus SDK中出现在路径中的 gradle-wrapper.properties 中指定:* (OculusSDKRoot)gradle-wrapper.properties*.
打开此文件并将 distributionUrl 变量中显示的值替换为以下内容:

distributionUrl=https://services.gradle.org/distributions/gradle-7.0.2-all.zip

1.理论上,我们已经正确配置了要使用的 Gradle插件 * 和 Gradle 版本,但如果您按下 * 将项目与Gradle文件同步 * 按钮,您将看到它不起作用。 问题是Android Studio没有找到我们刚刚修改的 gradle-wrapper.properties 文件。让我们检查一下...
1.选择 * 文件/设置/构建、执行、部署/构建工具/Gradle
:如果您注意到,从以下位置使用Gradle的右侧会显示一个错误:'gradle-wrapper.properfies'文件


我已经分析了Android Studio使用 Process Monitor 打开的文件,我看到它确实尝试在路径中打开文件:* (OculusSDKRoot)XrSamples\XrSpatialAnchor\Projects\Android\gradle\wrapper\gradle-wrapper. properties ,而不是在路径 (OculusSDKRoot)gradle\wrapper\gradle-wrapper. properties * 中,所以我们只需要复制文件夹 (OculusSDKRoot)gradle inside (OculusSDKRoot)XrSamples\XrSpatialAnchorjects\Android
1.再次选择 * 文件/设置/构建、执行、部署/构建工具/Gradle
。现在不再显示错误消息,因为Android Studio确实找到了 gradle-wrapper.properfies 文件。剩下的就是指定运行 GradleJava 版本。18.在 Gradle JDK 中,按箭头按钮并在上下文菜单中选择选项 * 下载JDK
....
1.在 * 下载JDK* 对话框中选择 * 版本16*(我提醒您,这是与Gradle 7.0兼容的Java版本)。您将看到 Amazon Corretto 16.0.2 已在 Vendor 中自动选中。单击 * 设置 * 对话框中的 * 下载 * 和 * 确定 *。
1.现在我们必须清除缓存。选择 *File/Invalidate caches... * 菜单选项,并在对话框中选中所有复选框,然后单击 OK 重新启动Android Studio。
你完了! 请记住,您必须在每个项目(XrBodyFaceEyeSocial,XrBodyTrackingFB,....)的Projects/Android目录中复制SDK根目录中的gradle目录。

相关问题