#android #unity3d #gradle #build
#Android #unity3d #arcore
Вопрос:
я использую пакет предварительного просмотра ARFoundation 4.1.0, и в управлении плагинами XR в настройках проекта Unity я включил Arcore, но проблема в том, что при сборке он выдает мне «Отсутствующий ключевой атрибут ‘package’ в пакете элементов в [: arcore_client:] AndroidManifest.xml:30:9-54». и когда я отключаю Arcore, он работает нормально, но я получаю камеру с черным экраном.
Ответ №1:
У меня аналогичный вопрос с вами, но я использовал ARCore SDK.
Эта проблема возникает при сочетании:
- Использование API-интерфейса Android-SDK 31-го уровня (или более поздней версии),
- Со старыми версиями Gradle.
По сути, обновления инструментов сборки до 31 недостаточно для поддержки
queries
элемента (из манифеста, добавленного с Android 11 ). Gradle также нуждается в обновлении.
Я решил это, изменив Gradle-plugin в моем assets--plugins--android--mainTemplate.gradle
файле с 3.4.0
на 3.6.0
, например:
dependencies {
classpath 'com.android.tools.build:gradle:3.6.0'
}
возможно, вам потребуется установить флажок «Customer Gradle Templete» в настройках проигрывателя-настройка публикации-сборка, чтобы создать этот файл
Ответ №2:
я решил это, вернувшись с ar foundation preview 10 4.1.0 на preview-2
Ответ №3:
Это связано с проблемой конфигурации файла gradle. Вам необходимо вручную внести некоторые изменения в пользовательские файлы gradle в версиях Unity 3D 2019 .
-
Go to Preferences > External Tools > Android > Gradle
и установите для пользовательского Gradle значение Gradle 5.6.4 или более поздней версии. Если он у вас уже есть, пропустите этот шаг. -
Go to Project Settings > Player > Android tab > Publishing Settings > Build
и выберите оба:Пользовательский основной шаблон Gradle
Пользовательский шаблон запуска.
-
Примените следующие изменения к обоим сгенерированным файлам:
Ресурсы / Плагины / Android/mainTemplate.gradle
Ресурсы / Плагины / Android/launcherTemplate.gradle
Если присутствует, удалите следующий комментарий в верхней части файла:
// СГЕНЕРИРОВАН UNITY. УДАЛИТЕ ЭТОТ КОММЕНТАРИЙ, ЧТОБЫ ПРЕДОТВРАТИТЬ ПЕРЕЗАПИСЬ ПРИ ПОВТОРНОМ ЭКСПОРТЕ
Вставьте следующие строки в начало файла:
buildscript {
repositories {
google()
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.6.0'
}
}
allprojects {
repositories {
google()
jcenter()
flatDir {
dirs 'libs'
}
}
}
Ответ №4:
-
Найдите версию Gradle, которую использует ваша версия Unity, отсюда.
-
Затем найдите последнюю версию плагина Gradle, совместимую с версией Gradle, найденной на первом шаге отсюда.
-
В разделе «Настройки публикации» в настройках проигрывателя установите
Custom Gradle Template
флажок. Затем Unity генерируетmainTemplate.gradle
файл по умолчанию вAssets/Plugins/Android/
папке. -
В
mainTemplate.gradle
файле обновите версиюcom.android.tools.build:gradle
плагина до более новой версии, найденной на шаге 2.