[英]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.