2013-07-22 15 views
5

Próbuję zaimportować bibliotekę (Evernote Android-SDK) do systemu Android Studio. Mam go znaleźć i pobrać (pojawił się w części Biblioteka zewnętrzna lub Eksplorator projektu). Potem zaczęło mi mówić, że tworzy duplikat pliku.Błąd gradacji - duplikowanie plików skopiowanych w pliku 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 
    } 
} 

To zestaw błędów, które się pojawiają.

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_ 

Na czym polega problem i jak mogę to naprawić?

Odpowiedź
Więc co zrobiłem jest umieścić folder w katalogu głównym projektu o nazwie biblioteki. Przeniosłem folder biblioteki sdk evernote do tego i nazwał go evernote.

Potem poszedłem do pliku struktury projektu. Zignorowałem ostrzeżenie. Wszedłem do modułów kliknąłem przycisk + i dodałem folder evernote. Następnie wybrałem moduł projektu aplikacji i przeszedłem do karty zależności. Uderzyłem tam (może być konieczne kliknięcie Alt + Insert, jeśli nie kliknęło) i dodano moduł, który zaimportowałem (evernote).

Zostałem następnie nakłoniony do myślenia, że ​​to nie działa, ponieważ zapomniałem zaimportować go do plików źródłowych.

+0

Proszę sprawdzić strukturę projektu (Plik -> Struktura projektu). W jaki sposób biblioteka evernote jest dołączona do projektu? Powinien być dodawany jeden raz jako moduł. – owe

Odpowiedz

7

Nie sądzę, aby można było odwoływać się do zestawu SDK Evernote Android SD za pomocą narzędzia Android Studio. Problem wynika z faktu, że bibliotek Android nie można spakować jako zwykłego słoika.

Biblioteka Evernote została zbudowana przy użyciu wtyczki maven-android, która nie jest kompatybilna z wtyczką gradle Android Studio. Dzieje się tak, ponieważ wtyczka maven używa formatu apklib do redystrybucji bibliotek, podczas gdy gradle używa nowego formatu aar. Dlatego gradle ma problem z połączeniem AndroidManifest Evernote z twoim własnym, co powoduje duplikaty.

Zamiast tego będziesz musiał sklonować źródło pakietu Evernote SDK, ręcznie zaimportować go do Android Studio i odnieść się do niego w ten sposób. Ich readme includes instructions za to z Intellij, który powinien być taki sam jak Android Studio.

+0

Dziękuję za pomoc. Zrobiłem to teraz działa. To naprawdę szkoda, nie możesz użyć gradle do pobrania najnowszej wersji, tak jak próbowałem to zrobić. Powinien móc pracować tak, jak to miałem. – SSMI

+0

Myślałem, że to działa. Tak więc mówi, że skompilował fin, ale studio android wciąż pokazuje błędy w liniach, w których odwołuję się do części api evernote. Czy jest jeszcze jeden krok, aby wykonać to poprawnie? – SSMI

+0

Nie powinno być. Jeśli zmodyfikowałeś pliki gradle, możesz spróbować zsynchronizować je z projektem Android Studio - http://stackoverflow.com/a/17098412/108 – Greg

0

Wystąpił ten sam błąd i wydaje się, że przyczyną jest plik o tej samej nazwie w obu plikach jar. dla mnie oba pliki miały plik o nazwie "about.html" w ich katalogu głównym. Po zmianie nazwy pliku wszystko działało.

-1

Dodałeś słoik biblioteki zawierający plik Manifest.xml. Możesz zmienić nazwę słoika na zip. Następnie rozpakuj plik ZIP i usuń plik Manifest.xml. Po tym można ponownie skompresować folder do zip. Na koniec zmień nazwę na jar.

Powiązane problemy