2013-06-17 14 views
19

Ich baue ein kleines Bibliotheksprojekt zusammen mit einem Beispielprojekt, um die Verwendung zu veranschaulichen. Ich kann das Beispiel nicht in Android Studio ausführen. Ich habe das Projekt von Grund auf neu erstellt. Ich bin erfahren mit Eclipse, aber es ist mein erster Versuch bei Android Studio & Gradle.Android Studio und Gradle - Build schlägt fehl

Der Fehler gegeben:

Gradle: Fehler bei der Ausführung für die Task ': Demo: dexDebug'.

Ausführen von C: \ DevTools \ Android \ Android-Studio \ sdk \ Build-Tools \ android-4.2.2 \ dx.bat fehlgeschlagen. Siehe Ausgabe

Ich habe die folgende Ordnerstruktur:

- demo 
    - build 
    - libs 
    - android-support-v4.jar 
    - src 
    - main 
     - java 
     - res 
    - build.gradle 
- library 
    - build 
    - libs 
    - android-support-v4.jar 
    - src 
    - main 
     - java 
     - res 
    - build.gradle 
- build.gradle 
- settings.gradle 

Build.gradle bei Projektstamm:

// Top-level build file where you can add configuration options common to all sub-projects/modules. 

Settings.gradle bei Projektstamm:

include ':library', ':demo' 

Build.gradle für das Bibliotheksmodul:

buildscript { 
    repositories { 
     mavenCentral() 
    } 
    dependencies { 
     classpath 'com.android.tools.build:gradle:0.4' 
    } 
} 
apply plugin: 'android-library' 

dependencies { 
    compile files('libs/android-support-v4.jar') 
} 

android { 
    compileSdkVersion 17 
    buildToolsVersion "17.0.0" 

    defaultConfig { 
     minSdkVersion 7 
     targetSdkVersion 16 
    } 
} 

Build.gradle für das Beispielmodul:

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

dependencies { 
    compile project(':library') 
    compile files('libs/android-support-v4.jar') 
} 

android { 
    compileSdkVersion 17 
    buildToolsVersion "17.0.0" 

    defaultConfig { 
     minSdkVersion 7 
     targetSdkVersion 16 
    } 
} 

Antwort

24

angeben compile files('libs/android-support-v4.jar') bedeutet, dass jede Bibliothek Unterstützung v4 enthält Was Sie tun möchten, ist angeben nur, dass jede Bibliothek davon abhängt:..

dependencies { 
    compile 'com.android.support:support-v4:13.0.0' 
} 

diese gradle ermöglicht alle Abhängigkeiten und nimmt diese nur einmal zu erfassen

Hinweis: Sie müssen zuerst den SDK-Manager verwenden und zwei Maven-Repositorys herunterladen und installieren: "Android Support Repository" und "Google Repository".

+2

hat für mich funktioniert - dauerte länger als nötig, weil ich das Google Repository ignoriert habe! –

+0

Mussten Sie das Projekt in Android Studio erneut importieren, damit es wirksam wird? – dannyroa

+0

Was ist, wenn wir eine andere Bibliothek verwenden? Zum Beispiel, wenn wir myLibrary verwenden, was in Abhängigkeiten eingeben? – alicanbatur

1

fand ich das Problem:

ich diese Zeile aus der Probe gradle Datei entfernt.

compile files('libs/android-support-v4.jar') 

Aber ich habe keine Ahnung, warum das nicht funktioniert (wenn ich 2 oder 3 externe Bibliotheken, die alle auf der Support-Bibliothek abhängen, wie sollen wir tun sollen, ohne ihre gradle Dateien zu berühren?

+0

Dies würde aber auch passieren, wenn Sie die Unterstützung Bibliothek enthielt sowohl in Ihrem lib und in Ihrem Hauptprojekt, gradle oder keine gradle Sie hat es in 1 Ort nur. –

+0

In Eclipse hatte ich nie Probleme, soweit die JAR-Dateien für jedes (Bibliotheks-) Projekt gleich waren. –

0

Sie sollten zu Ihrem libs-Ordner in der IDE navigieren, klicken Sie mit der rechten Maustaste auf das jar und wählen Sie, um die Bibliothek dem Projekt hinzuzufügen, es muss dennoch die Abhängigkeit herstellen, obwohl das jar dort zu sein scheint. Schauen Sie sich auch Ihr Skript an, um sicherzustellen, dass die Abhängigkeit dort erscheint. Wenn das immer noch nicht funktioniert, führen Sie einfach eine Gradle Clean für das Projekt aus. Intellij Dokumentation gibt Ihnen mehr Details darüber, was sauber ist. siehe:

stackoverflow gradle build

Verwandte Themen