Verwenden des Android Gradle Plugins 0.7.0 mit den folgenden Funktionen build.gradle
:
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
]
}
}
gibt den Fehler 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
Die Dinge haben heute Morgen gut funktioniert, bevor ich Android Studio aktualisiert habe. Irgendwelche Ideen?
BEARBEITEN: Ich konnte es vorübergehend beheben, indem ich Befehle wie ausführte
zip -d spring-android-core-1.0.1.RELEASE.jar META-INF/notice.txt
bis alle doppelten Fehler verschwunden waren.
android
gradle
android-studio
android-gradle-plugin
David Lawson
quelle
quelle
pickFirst
seit Gradle 0.9.1 verfügbare Option .Antworten:
Ab Android Studio Version 0.8.14
Sie sollten hinzufügen:
zu deinem
build.gradle
Datei.Geschichte:
Laut Kommentar 14 in diesem Fehler: https://issuetracker.google.com/issues/36982149#comment14 dies ein Fehler in Version 0.7.0 des Android Gradle-Plugins, der in Kürze in Version 0.7.1 behoben werden soll.
Hier sind die Hinweise aus diesem Fehler zum Hinzufügen von 0.7.1:
0.7.1 ist mit dem Fix dafür raus.
Das DSL zum Ausschließen von Dateien lautet:
Sie können beliebig viele Ausschlussanweisungen hinzufügen. Der Wert ist der Archivpfad. Noch keine Wildcard- oder Glob-Unterstützung.
Bei den Dateinamen "LICENSE.txt" und "NOTICE.txt" wird zwischen Groß- und Kleinschreibung unterschieden. Bitte probieren Sie es auch mit "license.txt" und "Notice.txt" aus.
quelle
In meinem Fall musste ich einige zusätzliche Ausschlüsse hinzufügen. Es scheint, dass es reguläre Ausdrücke nicht mag, was dies zu einem schönen Einzeiler gemacht hätte.
quelle
LICENSE
undNOTICE
nachdem ich hinzugefügt habecommons-lang3
.quelle
.txt
Suffix..txt
Suffix nicht. Also denke ich, YMMV (oder MMMV je nach Jahreszeit).Schauen Sie sich Sakiboys Kommentar an !
Veraltete Antwort
Ab Gradle 0.9.1 wird Folgendes unterstützt:
Weitere Informationen finden Sie in den Versionshinweisen zu Gradle .
quelle
Das gleiche Problem beim Exportieren der Bibliothek httclient-4.3.5 in Android Studio 0.8.6 muss Folgendes umfassen:
Die Bibliothek zip Inhalt das nächste Glas:
quelle
Dieser Fehler besteht immer noch in 0.8 + / 1.10
Mit Jackson
Ich musste den obigen Vorschlag ebenso einfügen, bevor er kompiliert werden konnte
quelle
Es ist mehr als ein Fehler
Unter
apply plugin: 'android-library'
füge das hinzu ::
Bei doppelten Dateien ist es einfach, in
JAR
dasMETA-INF
Verzeichnis zu schauen und zu sehen, was den Fehler verursacht. Es könnte mehrere sein. In meinem Fall Couchbase Lite Plugin. Wenn Sie weitere Plugins hinzufügen, benötigen Sie weitere Ausnahmenquelle
--info
ich in Android Studio Gradle mit dem Flag ausführe, kann ich das Protokoll der Klassen anzeigen, die der apk hinzugefügt wurden, und dann nach oben suchen, um den Protokolleintrag für dieselbe Klasse zu finden, die aus einer anderen JAR hinzugefügt wird. Dies zeigte mir auch den Dateipfad zu beiden JAR-Dateien. Ich konnte keinen guten Weg finden, eine .class-Datei über die andere zu wählen, also habe ich eine der JAR-Dateien geändert und die doppelte .classDas gleiche Problem, als ich 'org.springframework.android:spring-android-rest-template:2.0.0.M1' in Android Studio 1.0.1 verwendet habe. Ich muss dies in aufnehmen
build.gradle
quelle
Das funktioniert bei mir:
quelle
Ich denke, Sie müssen nur diese Optionen in build.gradle aufnehmen :
ps gleiche Antwort von meinem Beitrag in: Fehler :: doppelte Dateien beim Packen von APK
quelle
Das Problem ist, dass der META-INF-Ordner nicht gefiltert wird, so dass mehrere Einträge von
NOTICE
oderLICENSE
beim Erstellen Duplikate entstehen und versucht wird, diese zusammen zu kopieren.Schmutzige Schnellkorrektur:
Öffnen Sie die
.jar
Datei in Ihrem.gradle/caches/...
Ordner (mit einem Zip-kompatiblen Tool) und entfernen oder benennen Sie die Dateien in demMETA-INF
Ordner um, die den Fehler verursachen (normalerweiseNOTICE
oderLICENSE
). (Ich weiß, dass das auch im OP ist, aber für mich war es nicht wirklich klar, bis ich das Google-Forum gelesen habe)BEARBEITEN:
Dies wurde in 0.7.1 behoben. Fügen Sie einfach die zu schließenden Dateien hinzu.
quelle
Gleiches hier mit
Ich habe 2 Tage für diesen seltsamen Fehler verloren ... Warum passiert das immer noch in Gradle 1.0.0? Das ist sehr beunruhigend für Neulinge ... Wie auch immer, danke für diese Info, ich dachte es wäre auf meinem Code :)
quelle
Es ist wichtig zu wissen, in welcher Datei dieser Fehler auftritt (in Ihrem Beispiel ist es META-INF / LICENSE.txt), in meinem Fall in META-INF / LICENSE [ohne ".txt"] und dann in der Datei META-INF / ASL2.0, also habe ich meinem build.gradle folgende Zeilen hinzugefügt:
Sehr wichtig (!) -> Fügen Sie den Namen der Datei im gleichen Stil hinzu, den Sie in der Fehlermeldung sehen: Der Text unterscheidet zwischen Groß- und Kleinschreibung, und es gibt einen Unterschied zwischen * .txt und * (ohne "txt"). .
quelle
Wenn Sie Ihren Beitrag als Entwickler unter Verwendung von Open Source-Bibliotheken leisten möchten, sollten Sie versuchen, alle diese Open Source-Lizenzen in Ihre zu integrieren
apk
. Dazu können Sie die Zusammenführungsmethode in Ihrem verwendenpackagingOptions
.Beispiel:
Diese Antwort ist besser als die Verwendung,
pickFirst
da diese Methode nur die erste gefundene Lizenz auswählt und alle anderen ignoriert, was sie in diesem Fall irgendwie unbrauchbar macht.Kurz gesagt, verwenden Sie die
merge
Methode, um alle Lizenzen aus den von Ihnen verwendeten Open-Source-Bibliotheken einzuschließen.Weitere Informationen zu
Gradle
PackagingOptions .quelle
Ich habe diesen Commit-Kommentar in AOSP bemerkt. Die Lösung besteht darin, einige Dateien mit DSL auszuschließen. Wahrscheinlich, wenn 0.7.1 veröffentlicht wird.
quelle
In meinem Fall muss ich nur die build.gradle-Datei des Projekts hinzufügen:
quelle
In Android Studio 1.1.0 brauchte ich Kleinbuchstaben:
quelle
Bei den Dateien "LICENSE.txt" und "NOTICE.txt" wird zwischen Groß- und Kleinschreibung unterschieden. Also für SPring Android Library musste ich hinzufügen
quelle
Das Entfernen von .txt nach LICENSE hat meinen Fehler behoben:
quelle
quelle