gpt4 book ai didi

android - 无法将 Unity ARCore 项目作为 android .AAR 库运行

转载 作者:行者123 更新时间:2023-11-30 04:58:45 27 4
gpt4 key购买 nike

我正在尝试构建一个 Unity ARCore 应用程序,它将嵌入到现有的父 android 应用程序中。 ARCore 项目作为一个独立的项目运行良好(既是来自 Unity 的直接 apk,也是从导出的 unity android studio 项目创建的 apk)。

当我从导出的 unity android studio 项目创建一个“.aar”库文件并将其集成到主 android 应用程序时,它没有运行,并且出现以下错误:缺少 Unity Engine ARCore 支持。请确保 Unity 项目启用了“Player Settings > XR Settings > ARCore Supported”复选框。

我已确保在 XR 设置中启用了“支持 ARcore”(独立应用运行良好这一事实也证实了这一点)。此外,统一启动从父应用程序正确发生(我可以看到我的统一用户界面和启动动画等),只有 ARCore 相机没有初始化并出现上述错误。

以下是我创建“.aar”所遵循的教程链接: https://medium.com/@davidbeloosesky/embedded-unity-within-android-app-7061f4f473a

我也尝试过以下方法: https://medium.com/@randive.rishiraj/7-steps-to-integrate-google-arcore-unity-project-to-a-native-android-app-d85793ba0b37

以下是Unity android studio导出工程的build.gradle文件

// GENERATED BY UNITY. REMOVE THIS COMMENT TO PREVENT OVERWRITING WHEN EXPORTING AGAIN

buildscript {
repositories {
google()
jcenter()
}

dependencies {
classpath 'com.android.tools.build:gradle:3.0.1'
}
}

allprojects {
repositories {
flatDir {
dirs 'libs'
}
}
}

apply plugin: 'com.android.library'

dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation(name: 'arcore_client', ext:'aar')
implementation(name: 'arcore_rendering_utils', ext:'aar')
implementation(name: 'arcore_unity', ext:'aar')
implementation(name: 'google_ar_required', ext:'aar')
implementation(name: 'unityandroidpermissions', ext:'aar')
implementation(name: 'unitygar', ext:'aar')
}

android {
compileSdkVersion 28
buildToolsVersion '29.0.2'

defaultConfig {
minSdkVersion 24
targetSdkVersion 28
ndk {
abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86'
}
versionCode 1
versionName '1.0'
}

lintOptions {
abortOnError false
}

aaptOptions {
noCompress '.unity3d', '.ress', '.resource', '.obb'
}

buildTypes {
debug {
minifyEnabled false
useProguard false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-unity.txt'
jniDebuggable true
}
release {
minifyEnabled false
useProguard false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-unity.txt'
signingConfig signingConfigs.debug
}
}

packagingOptions {
doNotStrip '*/armeabi-v7a/*.so'
doNotStrip '*/arm64-v8a/*.so'
doNotStrip '*/x86/*.so'
}

}

下面是android list

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.mbrd.ar" xmlns:tools="http://schemas.android.com/tools" android:installLocation="auto">
<supports-screens android:smallScreens="true" android:normalScreens="true" android:largeScreens="true" android:xlargeScreens="true" android:anyDensity="true" />
<application android:theme="@style/UnityThemeSelector" android:icon="@mipmap/app_icon" android:label="@string/app_name" android:isGame="false" android:banner="@drawable/app_banner">
<activity android:label="@string/app_name" android:screenOrientation="portrait" android:launchMode="singleTask" android:configChanges="mcc|mnc|locale|touchscreen|keyboard|keyboardHidden|navigation|orientation|screenLayout|uiMode|screenSize|smallestScreenSize|fontScale|layoutDirection|density" android:hardwareAccelerated="false" android:name="com.mbrd.ar.UnityPlayerActivity">
<!--<intent-filter>-->
<!--<action android:name="android.intent.action.MAIN" />-->
<!--<category android:name="android.intent.category.LAUNCHER" />-->
<!--</intent-filter>-->
<meta-data android:name="unityplayer.UnityActivity" android:value="true" />
</activity>
<meta-data android:name="unity.tango-enable" android:value="True" />
<meta-data android:name="unityplayer.SkipPermissionsDialog" android:value="true" />
<meta-data android:name="unity.build-id" android:value="5147ef97-4e9e-47dd-b7ec-317134f40251" />
<meta-data android:name="unity.splash-mode" android:value="0" />
<meta-data android:name="unity.splash-enable" android:value="True" />
<meta-data android:name="android.max_aspect" android:value="2.1" />
</application>
<uses-feature android:glEsVersion="0x00020000" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-feature android:name="android.hardware.touchscreen" android:required="false" />
<uses-feature android:name="android.hardware.touchscreen.multitouch" android:required="false" />
<uses-feature android:name="android.hardware.touchscreen.multitouch.distinct" android:required="false" />
</manifest>

我使用的是 unity 2018.2.16。

任何人都可以给出可能的原因以及可以采取什么措施来解决这个问题的想法吗?

谢谢

最佳答案

遇到这个问题的人:

能够解决这个问题。这是一个项目设置问题。将脚本运行时版本设置为 .NET 4.x 等效版本并将 Api 兼容级别设置为 .NET Standard 2.0 为我解决了这个问题。

关于android - 无法将 Unity ARCore 项目作为 android .AAR 库运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58637501/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com