我写了一个图书馆项目cameraBarcodeScanner
它内置于 aar 文件中。该库在其 build.gradle 中定义了以下依赖项:
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:23.1.0'
compile 'com.google.zxing:core:3.2.1'
compile 'com.journeyapps:zxing-android-embedded:3.2.0@aar'
}
我在测试应用程序中使用该库,如下所示:
dependencies {
compile(name: 'cameraBarcodeScanner-release', ext: 'aar')
}
Gradle 找到该应用程序并能够构建它。然而,在运行时,android无法找到位于zxing-android-embedded
。在我看来,gradle 没有下载库项目的依赖项。
我也尝试过:
dependencies {
compile(name: 'cameraBarcodeScanner-release', ext: 'aar'){
transitive = true
}
但这也没有帮助。我是否必须以某种方式公开库的依赖项?您将如何使用库并使 gradle 下载其依赖项?
提前致谢!
The aar file 不包含嵌套的(或及物的 https://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html#Transitive_Dependencies) 依赖关系并且没有描述库使用的依赖项的 pom 文件。
这意味着,如果您使用flatDir
repo 您还必须在项目中指定依赖项.
你应该使用Maven 存储库(您必须在私人或公共 Maven 存储库中发布该库),您不会遇到同样的问题。
在这种情况下,gradle 使用包含依赖项列表的 pom 文件下载依赖项。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)