[英]Gradle build failed to resolve aar library dependency (trnql sdk)
这里的问题是gradle将尝试在其中一个声明的存储库中找到这个aar。 libs目录不是存储库...但你可以这样声明:
repositories {
mavenCentral()
flatDir {
dirs 'libs'
}
}
和gradle会找到它。
当您创建一个新的Android工作室项目时,您的顶级build.gradle将有一个buildscript和一个allproject部分(见下文),如果您插入
flatDir {
dirs 'libs'
}
部分进入buildscript的存储库,它将无法正常工作。
您必须将其粘贴到allprojects的存储库中,如下所示:
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.2.3'
}
}
allprojects {
repositories {
jcenter()
flatDir {
dirs 'libs'
}
}
}
就我而言,在我的库模块中,我的build.gradle看起来像:
buildscript {
repositories {
flatDir {
dirs "libs"
}
}
}
我不得不删除buildscript
位,以便它最终看起来像这样:
repositories {
flatDir {
dirs "libs"
}
}
然后它能够同步,然后建立。
并尽可能完整:让我们说你希望你的AAR在子模块的另一个目录中....
然后在TOP LEVEL项目的build.gradle文件中,您将执行以下操作:
buildscript {
// stuff here
}
allprojects {
repositories {
// all your standard stuff, jcenter, maven, etc
flatDir {
dirs project(':MY_MODULE_NAME').file('MODULE_SUB_DIRECTORY')
}
}
}
如果您的模块目录布局如下所示:
MyFancyModule/
/aars <-- aar files go here
/build
/libs <-- jar files go here
/src
build.gradle <-- this is NOT your top level gradle file
然后你的TOP LEVEL GRADLE FILE中的行看起来像:
dirs project(':MyFancyModule').file('aars')
把你的aar文件放在libs目录中,然后修改你的build.gradle文件的一部分,如下所示,区别在于你在编译fileTree时错过了* .aar
repositories {
flatDir {
dirs 'libs'
}
}
compile fileTree(dir:'libs', include:['*.jar', '*.aar'])
依赖项需要位于依赖项列表的顶部。
编译'com.trnql:lib-release:1.0.0@aar'在“compile fileTree ...”下面的列表顶部
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.