【发布时间】:2013-02-16 21:50:15
【问题描述】:
我正在尝试使用 Gradle 和 Android Gradle plugin 构建一个 Android 项目。我想依赖在外部(maven)存储库中找到的库项目,例如动作酒吧夏洛克。
根据official site,这似乎是可能的:
通过以下方式之一使用库:
多项目设置。在这里阅读:http://www.gradle.org/docs/current/userguide/multi_project_builds.html
通过 maven 或 ivy 等 repo 建立依赖关系。
我的 build.gradle 的当前内容:
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.2'
}
}
apply plugin: 'android'
repositories {
mavenCentral()
}
dependencies {
compile 'com.actionbarsherlock:library:4.2.0'
}
android {
target = 'android-16'
sourceSets {
main {
manifest {
srcFile 'AndroidManifest.xml'
}
java {
srcDir 'src'
}
res {
srcDir 'res'
}
assets {
srcDir 'assets'
}
resources {
srcDir 'src'
}
}
}
}
我正在使用 Gradle 1.2。当我尝试使用gradle assemble 构建时,我收到以下错误:
Error: duplicate files during packaging of APK /[path to project]/build/apk/[project name]-debug-unaligned.apk
Path in archive: AndroidManifest.xml
Origin 1: /[path to project]/build/libs/[apk name]-debug.ap_
Origin 2: /[home directory]/.gradle/caches/artifacts-14/filestore/com.actionbarsherlock/actionbarsherlock/4.2.0/apklib/dd63451a922558005d8c10be1085b488ed731d19/actionbarsherlock-4.2.0.apklib
:packageDebug FAILED
似乎它正在尝试从库项目和我的项目中包含 AndroidManifest.xml。如果我删除 sourceSets 中的 manifest 规范,我仍然会收到相同的错误。
该网站提到图书馆项目使用apply plugin: 'android-library';我猜这只是在构建实际库时(使用多项目设置),因为这样做不会产生 APK。
如何让外部 Android 库项目依赖项工作?
【问题讨论】:
标签: android maven build gradle