GradleとAndroidGradleプラグインを使用してAndroidプロジェクトをビルドしようとしています。ActionBarSherlockなどの外部(Maven)リポジトリにあるライブラリプロジェクトに依存したいと思います。
公式サイトによると、これは可能のようです:
ライブラリの使用は、次のいずれかの方法で行われます。
マルチプロジェクトのセットアップ。ここを読んでください:http ://www.gradle.org/docs/current/userguide/multi_project_builds.html
mavenやivyなどのリポジトリを介した依存関係。
私の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'
}
}
}
}
Gradle1.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を含めようとしているようです。manifest
の仕様を削除してsourceSets
も、同じエラーが発生します。
apply plugin: 'android-library'
このサイトでは、図書館プロジェクトでの使用について言及しています。これは、実際のライブラリを(マルチプロジェクト設定で)ビルドする場合にのみ発生すると思います。これを行うとAPKが生成されないためです。
外部のAndroidライブラリプロジェクトの依存関係を機能させるにはどうすればよいですか?