2013-07-22 4 views
5

Ich versuche, eine Bibliothek (Evernote Android-SDK) in Android Studio zu importieren. Ich habe es geschafft, es zu finden und herunterzuladen (es wurde im Bereich Externe Bibliotheken oder im Projekt Explorer angezeigt). Dann begann es mir zu sagen, dass es eine doppelte Datei erstellt.Gradle Error - Kopieren von Dateien in APK AndroidManifest.xml

buildscript { 
    repositories { 
     mavenCentral() 
    } 
    dependencies { 
     classpath 'com.android.tools.build:gradle:0.5.+' 
    } 
} 
apply plugin: 'android' 

repositories { 
    mavenCentral() 
} 

dependencies { 
    compile 'com.android.support:support-v4:13.0.+' 
    compile 'com.evernote:android-sdk:1.1.+' 
} 

android { 
    compileSdkVersion 17 
    buildToolsVersion "17.0.0" 

    defaultConfig { 
     minSdkVersion 14 
     targetSdkVersion 16 
    } 
} 

Dies ist die Menge der Fehler, die angezeigt werden.

Gradle: : duplicate files during packaging of APK C:\Users\SSMI\My Projects\AutoNote\AndroidProject\AutoNote\build\apk\AutoNote-debug-unaligned.apk 
Gradle: Execution failed for task ':AutoNote:packageDebug'. 
    > Duplicate files copied in APK AndroidManifest.xml 
    File 1: C:\Users\SSMI\My Projects\AutoNote\AndroidProject\AutoNote\build\libs\AutoNote-debug.ap_ 
    File 2: C:\Users\SSMI\My Projects\AutoNote\AndroidProject\AutoNote\build\libs\AutoNote-debug.ap_ 

Was ist das Problem hier und wie kann ich es beheben?

Antwort
Also, was ich einen Ordner in den Projekt-Stammbibliotheken genannt gestellt habe. Ich habe den evernote sdk-Bibliotheksordner dorthin verschoben und evernote genannt.

Dann ging ich zur Datei Projektstruktur. Ich habe die Warnung ignoriert. Ich ging in Module, klickte auf das + und fügte den evernote-Ordner hinzu. Ich wählte dann mein App-Projekt-Modul und ging auf die Registerkarte Abhängigkeiten. Ich drücke + dort (Sie müssen möglicherweise Alt + Einfügen, wenn es nicht klickt) und fügte das Modul hinzu, das ich importierte (evernote).

Ich wurde dann ausgetrickst zu denken, dass es nicht funktioniert, weil ich vergessen habe, es in den Quelldateien zu importieren.

+0

Bitte überprüfen Sie Ihre Projektstruktur (Datei -> Projektstruktur). Wie ist Ihre Evernote-Bibliothek in Ihrem Projekt enthalten? Es sollte einmal als Modul hinzugefügt werden. – owe

Antwort

7

Ich glaube nicht, dass Sie das Evernote Android SDK über Maven mit Android Studio verweisen können. Das Problem rührt von der Tatsache her, dass Android-Bibliotheken nicht als einfaches Glas verpackt werden können.

Die Evernote-Bibliothek wurde mit dem maven-android-plugin erstellt, das nicht mit dem Android Studio-Gradle-Plugin kompatibel ist. Dies liegt daran, dass das Maven-Plugin das Format apklib für die Neuverteilung von Bibliotheken verwendet, während gradle das neue Format aar verwendet. Deshalb hat gradle Schwierigkeiten, Evernotes AndroidManifest mit Ihren eigenen zu verbinden, was zu Duplikaten führt.

Stattdessen müssen Sie die Evernote-SDK-Quelle klonen, manuell in Android Studio importieren und auf diese Weise darauf verweisen. Ihre readme includes instructions dafür mit Intellij, die das gleiche wie Android Studio sein sollte.

+0

Danke für die Hilfe. Ich habe es jetzt funktioniert. Es ist wirklich schade, dass du gradle nicht benutzen kannst, um die neueste Version zu holen, so wie ich es versucht habe. Es sollte in der Lage sein, so zu arbeiten, wie ich es hatte. – SSMI

+0

Ich dachte, ich hätte es funktioniert. Es heißt also, es kompiliert Fin, aber Android Studio zeigt immer noch Fehler in Zeilen, wo ich Teile der Evernote Api verweisen. Gibt es noch einen weiteren Schritt, damit die Code-Vervollständigung korrekt funktioniert? – SSMI

+0

Es sollte nicht sein. Wenn Sie Ihre Gradle-Dateien geändert haben, können Sie versuchen, sie mit Ihrem Android Studio-Projekt erneut zu synchronisieren - http://stackoverflow.com/a/17098412/108 – Greg

0

Ich hatte den gleichen Fehler, und es scheint durch eine Datei mit dem gleichen Namen in beiden JAR-Dateien verursacht werden. Für mich hatten beide Dateien eine Datei namens "about.html" in ihrem Stammverzeichnis. Nach dem Umbenennen der Datei funktionierte alles.

-1

Sie haben ein Bibliotheksjar hinzugefügt, das eine Manifest.xml-Datei enthält Sie können den Typ jar in zip umbenennen. Dann extrahieren Sie zip und entfernen Sie die Manifest.xml-Datei. Danach können Sie den Ordner erneut komprimieren. Schließlich benennen Sie den Typ in jar um.

Verwandte Themen