我正在使用Android Studio以.aar格式创建可共享库。
我的库项目中的app / build.gradle文件指定了以下依赖项:
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:support-v4:21.0.+'
compile 'com.readystatesoftware.sqliteasset:sqliteassethelper:2.0.1'
compile 'org.apache.commons:commons-math3:3.3'
compile 'com.google.code.gson:gson:2.3'}
这很好用,所有这些依赖项都可以用来构建我的库项目。
尝试使用此库项目构建应用程序时遇到问题。
在app的build.gradle文件中,我将.aar指定为依赖项。我能够创建驻留在.aar文件中的类的实例,但是当我尝试在我的应用程序中创建LocalBroadcastManager实例时遇到了问题。
这个问题似乎源于这样一个事实:在我的库项目中我需要一个LocalBroadcastManager实例,所以我包含了' com.android.support:support-v4:21.0。+'作为依赖。在我写的应用程序中,我还需要创建一个LocalBroadcastManager实例。我似乎无法在我的应用程序中创建一个实例,而不包括v4支持库作为我的应用程序中的依赖项。
如果我没有在我的应用的build.gradle中包含v4支持库,则会收到错误消息:
错误:包android.support.v4.content不存在 import android.support.v4.content.LocalBroadcastManager;
如果我在我的应用程序的build.gradle中包含v4支持库,则会收到错误消息:
错误:在打包APK /Users/myComputer/Development/OfflineAarTest/app/build/outputs/apk/app-debug-unaligned.apk期间重复文件 存档中的路径:res / drawable-hdpi-v4 / ic_launcher.png 来源1:/Users/myComputer/Development/OfflineAarTest/app/build/intermediates/res/resources-debug.ap_ 来源2:/Users/myComputer/Development/OfflineAarTest/app/libs/app-offline-debug.aar
虽然我的库项目并没有包含我创建的任何资源,但我作为依赖项使用的东西必须包括资源目录和与应用程序中的资源冲突的文件。
我觉得我不了解依赖关系是如何工作的。任何人都可以帮助我吗?