Unity构建错误:在[:arcore_client:] AndroidManifest.xml的package元素上缺少'package'关键属性:30:9-54。

5
我正在使用 ARFoundation 4.1.0 预览包,在 Unity 项目设置中的 XR 插件管理中启用了 Arcore,但问题是构建时出现“在 [:arcore_client:] AndroidManifest.xml:30:9-54 上元素包上缺少 'package' 关键属性”错误。当禁用 Arcore 时,它可以正常工作,但相机会显示黑屏。
4个回答

9

我和你有类似的问题,但是我正在使用ARcore SDK。

这个问题发生在以下组合:

  • 使用Android-SDK的API级别31(或更高),
  • 与旧版本的Gradle。

基本上,仅更新构建工具到31并不足以支持清单中添加的queries元素(自Android 11+起)。Gradle也需要更新。

我通过将assets--plugins--android--mainTemplate.gradle文件中的Gradle插件从3.4.0更改为3.6.0来解决了这个问题,如下所示:

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

您可能需要在播放器设置-发布设置-构建中检查"客户Gradle模板",以创建此文件


3

我通过将 AR Foundation 预览版 10 4.1.0 回退到预览版-2 来解决了这个问题。


1
这是由于gradle文件配置问题造成的。您需要在Unity 3D 2019+版本中手动修改一些自定义gradle文件。
  1. 进入 "偏好设置 > 外部工具 > Android > Gradle",将自定义Gradle设置为Gradle 5.6.4或更高版本。如果已经拥有,请跳过此步骤。

    输入图像描述

  2. 进入 "项目设置 > 玩家 > Android选项卡 > 发布设置 > 构建",并选择以下两个选项:

    自定义主Gradle模板

    自定义启动器Gradle模板

    输入图像描述

  3. 将以下更改应用于生成的两个文件:

    Assets/Plugins/Android/mainTemplate.gradle

    Assets/Plugins/Android/launcherTemplate.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.6.0'
    }
}

allprojects {
   repositories {
      google()
      jcenter()
      flatDir {
        dirs 'libs'
      }
   }
}

1
  1. 这里查找Unity版本使用的Gradle版本。

  2. 然后在这里查找与步骤一中找到的Gradle版本兼容的最新Gradle插件版本。

  3. 在Player Settings的发布设置部分,勾选Custom Gradle Template选项。Unity会在Assets/Plugins/Android/文件夹中生成默认的mainTemplate.gradle文件。

  4. mainTemplate.gradle文件中,将com.android.tools.build:gradle插件版本更新为步骤2中找到的新版本。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接