Android Studio集成Unity AR库时出现Could not find :ARPresto:报错如何解决?
报错原因排查
- 仓库配置作用域错误:unityLibrary的build.gradle中,你将flatDir仓库配置放在了
buildscript块内,该块的仓库仅用于下载Gradle插件,不会用于解析项目业务依赖,因此无法识别libs目录下的本地aar包。 - 父项目未配置unity依赖仓库:项目级build.gradle中没有配置指向unityLibrary/libs目录的flatDir仓库,且你原来写的相关配置已经被注释,主项目依赖unityLibrary时无法定位到其内部的本地aar依赖。
- 前置检查:请先确认unityLibrary模块的
libs目录下确实存在ARPresto.aar文件,若缺失请重新导出Unity AR项目,导出时勾选包含所有依赖库的选项。
可行解决方案
方案1:统一在项目级build.gradle配置依赖仓库(推荐)
修改你的项目级build.gradle,新增allprojects块配置全局依赖仓库,修改后完整内容如下:
ext { sourceCompatibility = 1.8 targetCompatibility = 1.8 } // Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { repositories { google() mavenCentral() } dependencies { classpath "com.android.tools.build:gradle:7.0.3" classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.5.31" // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files } } // 新增下面的allprojects块 allprojects { repositories { google() mavenCentral() flatDir { dirs "${project(':unityLibrary').projectDir}/libs" } } } task clean(type: Delete) { delete rootProject.buildDir }
配置完成后可以删除unityLibrary的build.gradle开头多余的allprojects块,避免配置冲突。
方案2:仅在app模块配置仓库
如果不想修改全局配置,可以直接在app模块的build.gradle中新增repositories块:
android { // 原有配置保持不变 } // 新增仓库配置 repositories { flatDir { dirs "${project(':unityLibrary').projectDir}/libs" } } dependencies { // 原有依赖保持不变 }
额外优化建议
你当前app模块的ndk abiFilters配置包含x86,但Unity AR相关依赖通常仅提供arm架构的so库,建议将x86从abiFilters中移除,避免后续出现架构不兼容的报错:
ndk{ abiFilters 'armeabi-v7a','arm64-v8a' }
最后操作
所有配置修改完成后,点击Android Studio的Sync Project with Gradle Files,再执行Clean Project -> Rebuild Project即可解决报错。
内容的提问来源于stack exchange,提问作者Angel Hadzhiev
相关产品推荐
相关产品推荐

