2016-04-19 12 views
0

Ich baue ein Projekt mit einer Bibliothek aFileChooser. Ich habe es in mein Studio importiert, ein "build.gradle" dafür erstellt (weil ich ein anderes Problem hatte "keine Konfiguration namens default" oder etw so). Mit der neuen Build-Datei geht der Build in Ordnung. Aber das Bereitstellen einer apk zum Starten ist nicht möglich.Gradle Build doppelten Eintrag

Ich erhalte ein Problem mit doppelten Einträgen, während ich versuche, meine App auf dem Telefon bereitzustellen. Das genaue Problem ist:

Ich habe schon viele Fragen zu SO über Duplikate gesehen, aber keine der Antworten hat mir geholfen. Ich habe versucht, das Modul "support-v4" auszuschließen, habe versucht, Abhängigkeiten zu entfernen und so weiter. Nichts scheint zu funktionieren und das Problem bleibt dort.

Hier sind meine gradle Dateien:

aFileChooser build.gradle

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


    apply plugin: 'android-library' 

repositories { 
mavenCentral() 
} 

android { 
compileSdkVersion 22 
buildToolsVersion "23.0.2" 

defaultConfig { 
    minSdkVersion 18 
    targetSdkVersion 22 
} 

sourceSets { 
    main { 
     manifest.srcFile 'AndroidManifest.xml' 
     java.srcDirs = ['src'] 
     resources.srcDirs = ['src'] 
     aidl.srcDirs = ['src'] 
     renderscript.srcDirs = ['src'] 
     res.srcDirs = ['res'] 
     assets.srcDirs = ['assets'] 
    } 

} 
    } 
dependencies { 
    compile fileTree(include: ['*.jar'], dir: 'libs') 
    testCompile 'junit:junit:4.12' 
    compile 'com.android.support:support-v4:22.1.1' 
} 

App build.gradle

apply plugin: 'com.android.application' 

android { 
    compileSdkVersion 22 
    buildToolsVersion "23.0.2" 

    defaultConfig { 
     applicationId "ua.com.vendetta8247.testmate" 
     minSdkVersion 18 
     targetSdkVersion 22 
     versionCode 1 
     versionName "1.0" 
     multiDexEnabled = true 
    } 
    buildTypes { 
     release { 
      minifyEnabled false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
    } 
} 
dependencies { 
    compile fileTree(include: ['*.jar'], dir: 'libs') 
    testCompile 'junit:junit:4.12' 
    compile 'com.android.support:support-v4:22.1.1' 
    compile ('com.android.support:appcompat-v7:22.2.1') 
    compile ('com.android.support:recyclerview-v7:22.2.1') 
    compile ('com.android.support:cardview-v7:22.2.1') 
    compile ('com.android.support:design:22.2.1') 

    compile (project(':libs:aFileChooser')) 
} 

Allgemeine bauen

sub-projects/modules. 

buildscript { 
    repositories { 
     jcenter() 
    } 
    dependencies { 
     classpath 'com.android.tools.build:gradle:2.0.0' 
     // NOTE: Do not place your application dependencies here; they belong 
     // in the individual module build.gradle files 
    } 
} 

allprojects { 
    repositories { 
     jcenter() 
    } 
} 

task clean(type: Delete) { 
    delete rootProject.buildDir 
} 

Ich bekomme die Ausnahme, egal was ich versuche. Wenn ich die "Abhängigkeiten" in einem FileChooser lösche, können die Dateien nicht kompiliert werden, da sie v4-Dateien fehlen.

aktualisieren 1

Ich habe gradle -q dependencies yourProject:dependencies --configuration compile laufen wie in einer Antwort vorgeschlagen. Hier ist meine Ausgabe lautet:

+--- com.android.support:appcompat-v7:22.2.1 
+--- com.android.support:recyclerview-v7:22.2.1 
| \--- com.android.support:support-annotations:22.2.1 
+--- com.android.support:cardview-v7:22.2.1 
+--- com.android.support:design:22.2.1 
| \--- com.android.support:appcompat-v7:22.2.1 
\--- project :aFileChooser 
    \--- com.android.support:support-v4:22.2.1 
      \--- com.android.support:support-annotations:22.2.1 
+0

haben Sie versucht, diese 'compile ('com.android.support:appcompat-v7:22.2.1')' aus zu löschen Ihre App Build-Datei? –

+0

@DanCantir Probieren Sie es einfach aus. Hilft überhaupt nicht. Obwohl ich ziemlich überrascht bin, hat es das Projekt nicht zum Absturz gebracht. Weil ich Support v7 ausgiebig verwende – Vendetta8247

Antwort

1

Nach etwa 10 Stunden des Suchens durch SO, Google Text & Tabellen und anderen Quellen Ich habe festgestellt, dass dieses Problem nur projektbezogen sein kann. Die Lösung war einfach:

gradle clean 
gradle assembleDebug 

und das war es.

Jetzt werde ich erklären, warum das passiert ist. Nach dem Import der Bibliothek musste ich mein eigenes Build-Skript erstellen und einige Eigenschaften in der Bibliothek durcheinander bringen. Ich nehme an, dass Android Studio eine neuere Version von Gradle installiert hat, ohne vorherige Konfigurationen oder etwas ähnliches zu entfernen. Deshalb empfehle ich denen, die ähnliche Probleme haben, ihr Projekt jedes Mal zu säubern, wenn Sie eine neue Bibliothek hinzufügen