我的目标是分发一个.aar文件,供其项目中的其他开发人员使用。我发现的问题是当我尝试将我的.aar集成到其他项目中时,是否需要在我的.aar build.gradle中包含的build.gradle文件中指定所有依赖项。
我的问题是,如果可能的话,只将我的库作为依赖项包含在内,而且我的库所依赖的库将以某种方式包含在另一个项目中。
例如,我的库在其build.gradle文件中定义了以下依赖项:
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'org.altbeacon:android-beacon-library:2.3.5'
compile 'commons-codec:commons-codec:1.10'
}
我编写了一个测试应用程序,它使用我的库并在Android Studio界面中添加了类似的模块
dependencies {
compile 'com.android.support:appcompat-v7:22.0.0'
compile 'com.google.android.gms:play-services:7.5.0'
compile project(':myLibrary')
}
然而,这不起作用。我在运行时得到java.lang.VerifyErrors。最终工作的是将其包含在应用程序的build.gradle文件中:
dependencies {
compile 'com.android.support:appcompat-v7:22.0.0'
compile 'com.google.android.gms:play-services:7.5.0'
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'org.altbeacon:android-beacon-library:2.3.5'
compile 'commons-codec:commons-codec:1.10'
compile project(':myLibrary')
}
为什么我需要在.aar和最终应用程序中包含依赖项?我不了解依赖关系是如何工作的?为什么最终的应用程序无法在构建时从maven或jCenter获取.aar的依赖项?