在研究arfoundation的时候,需要看一些arfoundation的例子,在编译的过程中,出现了一些编译的问题。
arfoundation-samples的地址:https://github.com/Unity-Technologies/arfoundation-samples
看起来是Gradle编译的问题,尝试解决
在查了资料之后,需要确认Unity对Gradle的支持。
为了支持Android 11(API级别30),程序包可见性<queries>元素已添加到AR Foundation的ARCore扩展和Unity的ARCore SDK(1.19或更高版本)中。当这些版本的ARCore与Unity 2018.4或更高版本一起使用时, <queries>元素需要Gradle 5.6.4或更高版本。
在大多数情况下,使用Android Gradle插件版本3.6.0就足够了。要确认Android Gradle插件与您使用的Gradle版本之间的兼容性,请查阅Android Gradle插件兼容性表。
Unity Gradle支持
以下各节列出了受支持的Unity版本的说明。不支持Gradle自定义的Unity版本无法直接从Unity构建中定位Android 11(API级别30)( targetSdkVersion 30 )。
有关更多信息,请参见以下文章:
- Unity的Gradle支持
- Android的Configure Gradle构建
Unity 2020.1或更高版本
这些版本是使用Gradle 5.6.4或更高版本以及Gradle插件3.6.0或更高版本构建的。无需采取任何措施。
Unity 2019.3和2019.4
注意:以下定制仅在Unity 2019.3补丁7和更高版本上受支持。
- 转到首选项>外部工具> Android> Gradle ,然后将自定义Gradle设置为Gradle 5.6.4或更高版本。请参阅Gradle构建工具以进行下载。
- 转到项目设置>播放器> Android选项卡>发布设置>构建,然后选择两个:
- 自定义主Gradle模板
- 自定义启动器Gradle模板。
- 将以下更改应用于两个生成的文件:
- Assets/Plugins/Android/mainTemplate.gradle
- Assets/Plugins/Android/launcherTemplate.gradle
如果存在,请在文件顶部删除以下注释:
// GENERATED BY UNITY. REMOVE THIS COMMENT TO PREVENT OVERWRITING WHEN EXPORTING AGAIN
在2个文件顶部插入以下行,注意由于防火墙问题,我们不能访问google的maven,所以在这我们使用阿里的maven地址:
buildscript {
repositories {
maven{ url 'http://maven.aliyun.com/nexus/content/groups/public/'}
google()
jcenter()
}
dependencies {
// Must be Android Gradle Plugin 3.6.0 or later. For a list of
// compatible Gradle versions refer to:
// https://developer.android.com/studio/releases/gradle-plugin
classpath 'com.android.tools.build:gradle:3.6.0'
}
}
allprojects {
repositories {
maven{ url 'http://maven.aliyun.com/nexus/content/groups/public/'}
google()
jcenter()
flatDir {
dirs 'libs'
}
}
}
2019.1和2019.2
- 转到“偏好设置”>“外部工具”>“ Android”>“ Unity安装的Gradle” 。清除该选项,然后指定5.6.4或更高版本的自定义版本。请参阅Gradle构建工具以进行下载。
- 转到项目设置>播放器> Android选项卡>发布设置>生成,然后选择自定义Gradle模板。
- 编辑生成的文件Assets/Plugins/Android/mainTemplate.gradle ,然后根据您使用的Gradle版本将com.android.tools.build:gradle依赖项设置为3.6.0或更高版本。
buildscript {
dependencies {
// Must be Android Gradle Plugin 3.6.0 or later. For a list of
// compatible Gradle versions refer to:
// https://developer.android.com/studio/releases/gradle-plugin
classpath 'com.android.tools.build:gradle:3.6.0'
}
}
Unity 2018.4
注意:以下定制仅在Unity 2018.4补丁24及更高版本上受支持。
- 转到“构建设置”>“ Android” ,然后将“构建系统”设置为Gradle以使用自定义的Gradle版本。
- 转到“首选项”>“外部工具”>“ Android”>“ Unity一起安装的Gradle” 。清除该选项,然后指定5.6.4或更高版本的自定义版本。请参阅Gradle构建工具以进行下载。
- 转到项目设置>播放器> Android选项卡>发布设置>生成,然后选择自定义Gradle模板。
- 编辑生成的文件Assets/Plugins/Android/mainTemplate.gradle ,然后根据您使用的Gradle版本将com.android.tools.build:gradle依赖项设置为3.6.0或更高版本。
buildscript {
dependencies {
// Must be Android Gradle Plugin 3.6.0 or later. For a list of
// compatible Gradle versions refer to:
// https://developer.android.com/studio/releases/gradle-plugin
classpath 'com.android.tools.build:gradle:3.6.0'
}
}
参考文献:
https://developers.google.com/ar/develop/unity/android-11-build