Невозможно запустить проект Unity ARCore как библиотеку Android .AAR - PullRequest
1 голос
/ 31 октября 2019

Я пытаюсь создать приложение Unity ARCore, которое будет встроено в существующее родительское приложение для Android. Проект ARCore в качестве отдельного приложения работает нормально (как в виде прямого apk из Unity, так и в виде apk, созданного из экспортированного студийного проекта Unity Unity).

Когда я создаю " .aar "файл библиотеки из экспортированного проекта Unity Studio Studio и интегрировать его в основное приложение Android, он не запускается, и я получаю следующую ошибку: Отсутствует поддержка Unity Engine ARCore. Убедитесь, что в проекте Unity установлен флажок «Настройки игрока> Настройки XR> ARCore Поддерживается». .

Я убедился, что «ARcore support» включен в настройках XR (также подтверждается тем фактом, что автономное приложение работает нормально). Кроме того, единство запуска происходит правильно из родительского приложения (я вижу мой единый интерфейс пользователя и запускаю анимации и т. Д.), Только камера ARCore не инициализируется с вышеупомянутой ошибкой.

Ниже приведена ссылка на учебник iЗатем для создания ".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

Ниже приведен файл build.gradle экспортированного проекта Unity android studio

// 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'
    }

}

и далее - манифест андроида

<?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>

Я использую единство 2018.2.16.

Может кто-нибудь подсказать, в чем может быть причина и что может бытьсделано, чтобы решить это?

Спасибо

...