引入aar步骤
1.将aar文件复制在lib目录下
2.在该module下的build.gradle文件里加入如下代码:
android { ...... repositories { flatDir { dirs 'libs' } } }
3.在 该module下的build.gradle 添加 dependencies
implementation(name: ‘name-of-aar’, ext: ‘aar’)
如下所示:
dependencies { api fileTree(dir: 'libs', include: ['*.jar']) api(name: 'lib_wwapi-2.0.12.11', ext: 'aar') ...... }
假如是把 aar 文件放在 Library 的 Module 中,会造成引用该 Module 的其他 Module 或者 Application 无法找到或者解析该 aar
出现如下错误
org.gradle.api.UncheckedIOException: Failed to capture snapshot of input files for task ‘:mainApp:preDebugBuild’ property ‘runtimeManifests’ during up-to-date check. at org.gradle.api.internal.changedetection.state.CacheBackedTaskHistoryRepository.snapshotTaskFiles(CacheBackedTaskHistoryRepository.java:333) … Caused by: org.gradle.api.internal.artifacts.ivyservice.DefaultLenientConfiguration$ArtifactResolveException: Could not resolve all files for configuration ‘:mainApp:debugRuntimeClasspath’. at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration.rethrowFailure(DefaultConfiguration.java:918) … 35 more Caused by: org.gradle.internal.resolve.ModuleVersionNotFoundException: Could not find :cameraviewplus-release:. Required by: project :mainApp > project :
解决办法:在Project 下的 build.gradle 中的 repositories 中添加相应的引用如下:
allprojects { repositories { maven { url 'http://maven.aliyun.com/nexus/content/groups/public/' } maven { url "https://storage.googleapis.com/download.flutter.io" } mavenLocal() maven { url "https://jitpack.io" } flatDir { dirs project(':引入了aar的module名字').file('libs') } } }
重新build就可以解决问题了
PS:其他解决方法
首先还是将aar文件复制在lib目录下,然后将引用部分修改如下:
api fileTree(dir: "libs", include: ["*.jar", "*.aar"])
重新build也是可以的