以下のbuild.gradle
を使用してAndroid Gradleプラグイン0.7.0を使用する。
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.Android.tools.build:gradle:0.7.0'
}
}
apply plugin: 'Android'
repositories {
maven { url "https://Android-rome-feed-reader.googlecode.com/svn/maven2/releases" }
maven { url "http://dl.bintray.com/populov/maven" }
mavenCentral()
}
Android {
compileSdkVersion 19
buildToolsVersion '18.1.1'
defaultConfig {
minSdkVersion 9
targetSdkVersion 19
}
buildTypes {
release {
runProguard true
proguardFile getDefaultProguardFile('proguard-Android-optimize.txt')
}
}
productFlavors {
defaultFlavor {
proguardFile 'proguard-rules.txt'
}
}
sourceSets {
instrumentTest.setRoot('src/instrumentTest')
}
}
configurations {
apt
}
ext.androidAnnotationsVersion = '2.7.1';
dependencies {
compile 'com.Android.support:support-v4:18.0.0'
compile 'com.viewpagerindicator:library:2.4.1@aar'
compile 'com.google.code.Android-rome-feed-reader:Android-rome-feed-reader:1.0.0-r2'
compile 'org.jdom:jdom:1.1.1-Android-fork'
apt "com.googlecode.androidannotations:androidannotations:${androidAnnotationsVersion}"
compile "com.googlecode.androidannotations:androidannotations-api:${androidAnnotationsVersion}"
compile 'com.google.code.gson:gson:2.2.4'
compile 'com.j256.ormlite:ormlite-Android:4.47'
compile 'com.j256.ormlite:ormlite-core:4.47'
compile 'org.springframework.Android:spring-Android-core:1.0.1.RELEASE'
compile 'org.springframework.Android:spring-Android-rest-template:1.0.1.RELEASE'
compile 'com.prolificinteractive:actionbarsherlock:4.3.1@aar'
compile 'com.google.code.geocoder-Java:geocoder-Java:0.15'
compile files('libs/CWAC-Pager.jar')
}
Android.applicationVariants.all { variant ->
aptOutput = file("${project.buildDir}/source/apt_generated/${variant.dirName}")
println "****************************"
println "variant: ${variant.name}"
println "manifest: ${variant.processResources.manifestFile}"
println "aptOutput: ${aptOutput}"
println "****************************"
variant.javaCompile.doFirst {
println "*** compile doFirst ${variant.name}"
aptOutput.mkdirs()
variant.javaCompile.options.compilerArgs += [
'-processorpath', configurations.apt.getAsPath(),
'-AandroidManifestFile=' + variant.processResources.manifestFile,
'-s', aptOutput
]
}
}
エラーDuplicate files copied in APK META-INF/LICENSE.txt
を返します。
WARNING: Dependency commons-logging:commons-logging:1.0.4 is ignored for defaultFlavorDebug as it may be conflicting with the internal version provided by Android.
In case of problem, please repackage it with jarjar to change the class packages
WARNING: Dependency commons-logging:commons-logging:1.0.4 is ignored for defaultFlavorRelease as it may be conflicting with the internal version provided by Android.
In case of problem, please repackage it with jarjar to change the class packages
Creating properties on demand (a.k.a. dynamic properties) has been deprecated and is scheduled to be removed in Gradle 2.0. Please read http://gradle.org/docs/current/dsl/org.gradle.api.plugins.ExtraPropertiesExtension.html for information on the replacement for dynamic properties.
Deprecated dynamic property: "aptOutput" on "com.Android.build.gradle.internal.api.ApplicationVariantImpl_Decorated@5705013c", value: "/Users/david/Developer...".
****************************
variant: defaultFlavorDebug
manifest: /Users/david/Developer/.../build/manifests/defaultFlavor/debug/AndroidManifest.xml
aptOutput: /Users/david/Developer/.../build/source/apt_generated/defaultFlavor/debug
****************************
Deprecated dynamic property "aptOutput" created in multiple locations.
****************************
variant: defaultFlavorRelease
manifest: /Users/david/Developer/.../build/manifests/defaultFlavor/release/AndroidManifest.xml
aptOutput: /Users/david/Developer/.../build/source/apt_generated/defaultFlavor/release
****************************
:TravelGuard:compileDefaultFlavorDebugNdk UP-TO-DATE
:TravelGuard:preBuild UP-TO-DATE
:TravelGuard:preDefaultFlavorDebugBuild UP-TO-DATE
:TravelGuard:preDefaultFlavorReleaseBuild UP-TO-DATE
:TravelGuard:prepareComProlificinteractiveActionbarsherlock431Library UP-TO-DATE
:TravelGuard:prepareComViewpagerindicatorLibrary241Library UP-TO-DATE
:TravelGuard:prepareDefaultFlavorDebugDependencies
:TravelGuard:compileDefaultFlavorDebugAidl UP-TO-DATE
:TravelGuard:compileDefaultFlavorDebugRenderscript UP-TO-DATE
:TravelGuard:generateDefaultFlavorDebugBuildConfig UP-TO-DATE
:TravelGuard:mergeDefaultFlavorDebugAssets UP-TO-DATE
:TravelGuard:mergeDefaultFlavorDebugResources UP-TO-DATE
:TravelGuard:processDefaultFlavorDebugManifest UP-TO-DATE
:TravelGuard:processDefaultFlavorDebugResources UP-TO-DATE
:TravelGuard:generateDefaultFlavorDebugSources UP-TO-DATE
:TravelGuard:compileDefaultFlavorDebugJava
*** compile doFirst defaultFlavorDebug
/Users/david/Developer/.../src/main/Java/com/travelguard/service/TravelGuardService.Java:53: cannot find symbol
symbol : class TravelGuardPrefs_
location: class com.travelguard.service.TravelGuardService
TravelGuardPrefs_ travelGuardPrefs;
^
/Users/david/Developer/.../src/main/Java/com/travelguard/ui/CategoriesActivity.Java:14: cannot find symbol
symbol : class AssistanceFragment_
location: package com.travelguard.ui.fragments
import com.travelguard.ui.fragments.AssistanceFragment_;
^
/Users/david/Developer/.../src/main/Java/com/travelguard/ui/CategoriesActivity.Java:16: cannot find symbol
symbol : class CategoryFragment_
location: package com.travelguard.ui.fragments
import com.travelguard.ui.fragments.CategoryFragment_;
^
/Users/david/Developer/.../src/main/Java/com/travelguard/ui/CategoriesActivity.Java:17: cannot find symbol
symbol : class ContactFragment_
location: package com.travelguard.ui.fragments
import com.travelguard.ui.fragments.ContactFragment_;
^
/Users/david/Developer/.../src/main/Java/com/travelguard/ui/CountriesActivity.Java:25: cannot find symbol
symbol : class TravelGuardPrefs_
location: package com.travelguard.service
import com.travelguard.service.TravelGuardPrefs_;
^
/Users/david/Developer/.../src/main/Java/com/travelguard/ui/CountriesActivity.Java:44: cannot find symbol
symbol : class TravelGuardPrefs_
location: class com.travelguard.ui.CountriesActivity
TravelGuardPrefs_ travelGuardPrefs;
^
/Users/david/Developer/.../src/main/Java/com/travelguard/ui/InstructionsActivity.Java:18: cannot find symbol
symbol : class AssistanceFragment_
location: package com.travelguard.ui.fragments
import com.travelguard.ui.fragments.AssistanceFragment_;
^
/Users/david/Developer/.../src/main/Java/com/travelguard/ui/InstructionsActivity.Java:19: cannot find symbol
symbol : class ContactFragment_
location: package com.travelguard.ui.fragments
import com.travelguard.ui.fragments.ContactFragment_;
^
/Users/david/Developer/.../src/main/Java/com/travelguard/ui/InstructionsActivity.Java:21: cannot find symbol
symbol : class InstructionsFragment_
location: package com.travelguard.ui.fragments
import com.travelguard.ui.fragments.InstructionsFragment_;
^
/Users/david/Developer/.../src/main/Java/com/travelguard/ui/MainActivity.Java:36: cannot find symbol
symbol : class TravelGuardPrefs_
location: package com.travelguard.service
import com.travelguard.service.TravelGuardPrefs_;
^
/Users/david/Developer/.../src/main/Java/com/travelguard/ui/MainActivity.Java:40: cannot find symbol
symbol : class AssistanceFragment_
location: package com.travelguard.ui.fragments
import com.travelguard.ui.fragments.AssistanceFragment_;
^
/Users/david/Developer/.../src/main/Java/com/travelguard/ui/MainActivity.Java:41: cannot find symbol
symbol : class ContactFragment_
location: package com.travelguard.ui.fragments
import com.travelguard.ui.fragments.ContactFragment_;
^
/Users/david/Developer/.../src/main/Java/com/travelguard/ui/MainActivity.Java:55: cannot find symbol
symbol : class TravelGuardPrefs_
location: class com.travelguard.ui.MainActivity
TravelGuardPrefs_ travelGuardPrefs;
^
/Users/david/Developer/.../src/main/Java/com/travelguard/ui/TermsActivity.Java:17: cannot find symbol
symbol : class TravelGuardPrefs_
location: package com.travelguard.service
import com.travelguard.service.TravelGuardPrefs_;
^
/Users/david/Developer/.../src/main/Java/com/travelguard/ui/TermsActivity.Java:23: cannot find symbol
symbol : class TravelGuardPrefs_
location: class com.travelguard.ui.TermsActivity
TravelGuardPrefs_ travelGuardPrefs;
^
Note: Starting AndroidAnnotations annotation processing
Note: AndroidManifest.xml file found: /Users/david/Developer/.../build/manifests/defaultFlavor/debug/AndroidManifest.xml
Note: Number of files generated by AndroidAnnotations: 22
Note: Generating source file: com.travelguard.service.SmartTravellerService_
Note: Generating source file: com.travelguard.service.SmartTravellerWebservice_
Note: Generating source file: com.travelguard.service.TravelGuardPrefs_
Note: Generating source file: com.travelguard.service.TravelGuardService_
Note: Generating source file: com.travelguard.service.TravelGuardWebservice_
Note: Generating source file: com.travelguard.ui.AdviceActivity_
Note: Generating source file: com.travelguard.ui.CategoriesActivity_
Note: Generating source file: com.travelguard.ui.ContactDetailActivity_
Note: Generating source file: com.travelguard.ui.ContactListActivity_
Note: Generating source file: com.travelguard.ui.ContactTravelGuardActivity_
Note: Generating source file: com.travelguard.ui.CountriesActivity_
Note: Generating source file: com.travelguard.ui.InformationActivity_
Note: Generating source file: com.travelguard.ui.InstructionsActivity_
Note: Generating source file: com.travelguard.ui.MainActivity_
Note: Generating source file: com.travelguard.ui.TermsActivity_
Note: Generating source file: com.travelguard.ui.TravelGuardActivity_
Note: Generating source file: com.travelguard.ui.fragments.AdviceDetailFragment_
Note: Generating source file: com.travelguard.ui.fragments.AdviceFragment_
Note: Generating source file: com.travelguard.ui.fragments.AssistanceFragment_
Note: Generating source file: com.travelguard.ui.fragments.CategoryFragment_
Note: Generating source file: com.travelguard.ui.fragments.ContactFragment_
Note: Generating source file: com.travelguard.ui.fragments.InstructionsFragment_
Note: Time measurements: [Whole Processing = 913 ms], [Generate Sources = 358 ms], [Extract Manifest = 163 ms], [Process Annotations = 158 ms], [Extract Annotations = 120 ms], [Validate Annotations = 82 ms], [Find R Classes = 28 ms],
Note: Time measurements: [Whole Processing = 0 ms],
Note: Time measurements: [Whole Processing = 0 ms],
warning: The following options were not recognized by any processor: '[androidManifestFile]'
Note: /Users/david/Developer/.../src/main/Java/com/travelguard/ui/ContactDetailActivity.Java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: /Users/david/Developer/.../src/main/Java/com/travelguard/service/SmartTravellerService.Java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
:TravelGuard:preDexDefaultFlavorDebug UP-TO-DATE
:TravelGuard:dexDefaultFlavorDebug
:TravelGuard:processDefaultFlavorDebugJavaRes UP-TO-DATE
:TravelGuard:validateDebugSigning
:TravelGuard:packageDefaultFlavorDebug
Error: duplicate files during packaging of APK /Users/david/Developer/.../build/apk/TravelGuard-defaultFlavor-debug-unaligned.apk
Path in archive: META-INF/LICENSE.txt
Origin 1: /Users/david/.gradle/caches/modules-2/files-2.1/commons-httpclient/commons-httpclient/3.1/964cd74171f427720480efdec40a7c7f6e58426a/commons-httpclient-3.1.jar
Origin 2: /Users/david/.gradle/caches/modules-2/files-2.1/commons-codec/commons-codec/1.2/397f4731a9f9b6eb1907e224911c77ea3aa27a8b/commons-codec-1.2.jar
:TravelGuard:packageDefaultFlavorDebug FAILED
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':TravelGuard:packageDefaultFlavorDebug'.
> Duplicate files copied in APK META-INF/LICENSE.txt
File 1: /Users/david/.gradle/caches/modules-2/files-2.1/commons-httpclient/commons-httpclient/3.1/964cd74171f427720480efdec40a7c7f6e58426a/commons-httpclient-3.1.jar
File 2: /Users/david/.gradle/caches/modules-2/files-2.1/commons-httpclient/commons-httpclient/3.1/964cd74171f427720480efdec40a7c7f6e58426a/commons-httpclient-3.1.jar
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
BUILD FAILED
Total time: 21.957 secs
私はAndroid Studioをアップデートする前に物事は今朝うまくいっていました。何か案は?
編集:私は一時的にのようなコマンドを実行することでそれを修正することができました
Zip -d spring-Android-core-1.0.1.RELEASE.jar META-INF/notice.txt
すべての重複エラーがなくなるまで。
あなたが追加する必要があります:
Android {
packagingOptions {
exclude 'META-INF/LICENSE.txt'
exclude 'META-INF/NOTICE.txt'
exclude '...'
}
}
あなたのbuild.gradle
ファイルに。
このバグのコメント14によると: https://issuetracker.google.com/issues/36982149#comment14 これはv0.7.0のバグです。 Android Gradleプラグイン、および0.7.1でまもなく修正される予定です。
これは0.7.1の追加に関するそのバグからのメモです:
0.7.1はこの問題に対する修正です。
ファイルを除外するDSLは次のとおりです。
Android {
packagingOptions {
exclude 'META-INF/LICENSE.txt'
}
}
あなたはあなたが望むだけの数のexcludeステートメントを追加することができます。値はアーカイブパスです。ワイルドカードやグロブのサポートはまだありません。
ファイル名 "LICENSE.txt"と "NOTICE.txt"は大文字と小文字を区別します。 「license.txt」と「notice.txt」も試してください
私の場合は、いくつかの追加の除外を含める必要がありました。これは、これを素敵なワンライナーにしたであろう正規表現を好まないようです。
Android {
packagingOptions {
exclude 'META-INF/DEPENDENCIES.txt'
exclude 'META-INF/DEPENDENCIES'
exclude 'META-INF/dependencies.txt'
exclude 'META-INF/LICENSE.txt'
exclude 'META-INF/LICENSE'
exclude 'META-INF/license.txt'
exclude 'META-INF/LGPL2.1'
exclude 'META-INF/NOTICE.txt'
exclude 'META-INF/NOTICE'
exclude 'META-INF/notice.txt'
}
}
packagingOptions {
exclude 'META-INF/DEPENDENCIES.txt'
exclude 'META-INF/LICENSE.txt'
exclude 'META-INF/NOTICE.txt'
}
Sakiboyのコメント を見てください。
Gradle 0.9.1から、以下がサポートされています。
Android.packagingOptions {
pickFirst 'META-INF/LICENSE.txt'
}
Gradleリリースノート に詳しい情報があります。
Android Studio 0.8.6にライブラリhttclient-4.3.5をエクスポートするときに同じ問題があります。
packagingOptions{
exclude 'META-INF/DEPENDENCIES'
exclude 'META-INF/NOTICE'
exclude 'META-INF/NOTICE.txt'
exclude 'META-INF/LICENSE'
exclude 'META-INF/LICENSE.txt'
}
ライブラリZipコンテンツの次のjarファイル:
commons-codec-1.6.jar
commons-logging-1.1.3.jar
fluent-hc-4.3.5.jar
httpclient-4.3.5.jar
httpclient-cache-4.3.5.jar
httpcore-4.3.2.jar
httpmime-4.3.5.jar
このバグはまだ0.8 +/1.10に存在します
ジャクソンと
compile 'com.fasterxml.jackson.dataformat:jackson-dataformat-csv:2.2.2'
それがコンパイルされる前に私は上記の提案と同様に含めなければなりませんでした
exclude 'META-INF/services/com.fasterxml.jackson.core.JsonFactory'
複数のエラーです
apply plugin: 'Android-library'
の下
これを追加 ::
Android {
packagingOptions {
exclude 'META-INF/ASL2.0'
exclude 'META-INF/LICENSE'
exclude 'META-INF/NOTICE'
}
}
ファイルが重複している場合は簡単です。META-INF
ディレクトリの下のJAR
内を調べて、エラーの原因を調べてください。それは複数かもしれません。私の場合はCouchbase Liteプラグインです。プラグインを追加すると、さらに例外が必要になります。
Android Studio 1.0.1で「org.springframework.Android:spring -Android-rest-template:2.0.0.0.M1」を使用したときと同じ問題が発生しました。これをbuild.gradle
に含める必要があります
Android{
...
packagingOptions{
exclude 'META-INF/notice.txt'
exclude 'META-INF/license.txt'
}
...
}
これは私のために働く:
Android {
packagingOptions {
exclude 'LICENSE.txt'
}
}
build.gradleにこれらのオプションだけを含める必要があると思います。
packagingOptions {
exclude 'META-INF/DEPENDENCIES'
exclude 'META-INF/NOTICE'
exclude 'META-INF/LICENSE'
}
私の投稿からの同じ回答: エラー:: APKのパッケージ化中にファイルが重複しています
それがこのエラーに関連するどのファイル(あなたの例ではMETA-INF/LICENSE.txt)で知っておくことが重要です。 META-INF/ASL2.0なのでbuild.gradleに次の行を追加しました。
Android {
packagingOptions {
exclude 'META-INF/LICENSE'
exclude 'META-INF/ASL2.0'
}
}
非常に重要(!) - >エラーメッセージに表示されるのと同じスタイルでファイル名を追加します。テキストは大文字と小文字が区別され、*。txtと*の間には違いがあります( "txt"なし)。 。
ここでも同じ
dependencies {
compile 'org.Apache.oltu.oauth2:org.Apache.oltu.oauth2.client:1.0.0'
}
packagingOptions {
exclude 'META-INF/DEPENDENCIES'
exclude 'META-INF/LICENSE'
exclude 'META-INF/NOTICE'
}
私はその奇妙なエラーのために2日ほど失いました...なぜこれがまだ1.0.0のグラドルで起こっているのですか?それは初心者のために非常に厄介です...とにかく、その情報のおかげで私はそれが私のコードにあると思った:)
AOSPでこのコミットコメントに気づいた、解決策はDSLを使っていくつかのファイルを除外することだろう。おそらく0.7.1がリリースされたとき。
commit e7669b24c1f23ba457fdee614ef7161b33feee69
Author: Xavier Ducrohet <--->
Date: Thu Dec 19 10:21:04 2013 -0800
Add DSL to exclude some files from packaging.
This only applies to files coming from jar dependencies.
The DSL is:
Android {
packagingOptions {
exclude 'META-INF/LICENSE.txt'
}
}
問題は、META-INFフォルダがフィルタ処理されないため、NOTICE
またはLICENSE
の複数のエントリがビルド時に重複し、それらをまとめてコピーしようとすることです。
ダーティークイックフィックス:
.jar
フォルダー内の.gradle/caches/...
ファイルを(Zip互換ツールを使用して)開き、エラーの原因となるMETA-INF
フォルダー内のファイルを削除または名前変更します(通常はNOTICE
またはLICENSE
)。 (私はOPにもそれがあることを知っていますが、私にとっては、Googleフォーラムを読むまではっきりしませんでした)
編集:
これは0.7.1で修正されました。除外するファイルを追加するだけです。
Android {
packagingOptions {
exclude 'META-INF/LICENSE'
}
}
オープンソースライブラリを利用して、開発者としての役割を果たす場合は、それらすべてのオープンソースライセンスをapk
に含めてみてください。これを行うには、packagingOptions
で merge メソッドを使用します。
例:
packagingOptions {
// This will get include every license and notice regardless of what dir it’s in.
merge '**/LICENSE.txt'
merge '**/NOTICE.txt'
merge '**/notice.txt'
merge '**/license.txt'
merge '**/NOTICE'
merge '**/LICENSE'
merge '**/notice'
merge '**/license'
merge '**/LGPL2.1'
// This will exclude any README files, regardless of the dir or the file type.
exclude '**/README.*'
}
この方法はpickFirst
を使用するよりも優れています。なぜなら、そのメソッドのみが最初に見つけたライセンスを選択し、それ以外は無視するからです。
つまり、merge
メソッドを使用して、これまで使用してきたこれらのオープンソースライブラリのライセンスをすべて含めます。
Gradle
PackagingOptions に関する詳細情報。
私の場合は、プロジェクトのbuild.gradleファイルに追加するだけです。
Android {
packagingOptions {
exclude 'META-INF/notice.txt'
exclude 'META-INF/license.txt'
}
...
}
packagingOptions {
exclude 'META-INF/DEPENDENCIES.txt'
exclude 'META-INF/DEPENDENCIES'
exclude 'META-INF/dependencies.txt'
exclude 'META-INF/LICENSE.txt'
exclude 'META-INF/LICENSE'
exclude 'META-INF/license.txt'
exclude 'META-INF/LGPL2.1'
exclude 'META-INF/NOTICE.txt'
exclude 'META-INF/NOTICE'
exclude 'META-INF/notice.txt'
}
LICENSEの後に.txtを削除するとエラーが削除されました。
packagingOptions {
exclude 'META-INF/LICENSE'
}
Android Studio 1.1.0では、小文字の名前が必要でした。
packagingOptions{
exclude 'META-INF/license.txt'
exclude 'META-INF/notice.txt'
}
ファイル "LICENSE.txt"と "NOTICE.txt"は大文字と小文字を区別します。だからSPringのAndroidライブラリのために私は追加しなければならなかった
Android {
packagingOptions {
exclude 'META-INF/LICENSE.txt'
exclude 'META-INF/NOTICE.txt'
exclude 'META-INF/license.txt'
exclude 'META-INF/notice.txt'
}
}