第一种情况,我们需要在ModuleA引入arr文件,步骤很简单:
首先将arr文件放在ModuleA的libs目录下
ModuleA添加api依赖
dependencies {
···
api(name: '***', ext: 'aar')
···
}
android {
compileSdkVersion 28
buildToolsVersion "28.0.3"
···
repositories {
flatDir {
dirs 'libs'
}
}
···
}
然后我们的ModuleB依赖ModlueA,并且也需要arr里面的部分类库,这时候我们怎么做呢?
repositories {
flatDir {
dirs '../moduleA名称/libs', 'libs'
}
}
假设我们最终的app依赖ModuleB,app的build.gradle里面也要添加依赖:
repositories {
flatDir {
dirs '../moduleA名称/libs', 'libs'
}
}
常见问题:
Caused by: org.gradle.api.internal.artifacts.ivyservice.DefaultLenientConfiguration$ArtifactResolveException: Could not resolve all files for configuration ':app:debugRuntimeClasspath'.
Caused by: org.gradle.internal.resolve.ModuleVersionNotFoundException: Could not find :***
解决方案:根Module(一般是app)没有添加:
repositories {
flatDir {
dirs '../moduleA/libs', 'libs'
}
}
原因分析:根Module不管用不用到arr里面的文件,但是依赖都会走一遍,如果找不到就会报错。
|