Jar-Bibliothek von aar @ ausschließ

Ich habe ein Bibliotheksprojekt, das von cordova.jar abhängt, das aus dem Projektverzeichnis libs geladen wird.

Dieses Bibliotheksprojekt setze ich als AAR für einen Maven-Nexus ein.

In einem Anwendungsprojekt habe ich eine Abhängigkeit zu den Bibliotheksprojekten aar (kompilieren ...). Das Anwendungsprojekt hat jedoch dieselbe Abhängigkeit von der Datei cordova.jar.

Also beim Erstellen des Anwendungsprojekts erhalte ich diesen Fehler:

:transformClassesWithDexForDebug
UNEXPECTED TOP-LEVEL EXCEPTION:
com.android.dex.DexException: Multiple dex files define Lorg/apache/cordova/AuthenticationToken;
    at com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:579)
    at com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:535)
    at com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:517)
    at com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:164)
    at com.android.dx.merge.DexMerger.merge(DexMerger.java:188)
    at com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:504)
    at com.android.dx.command.dexer.Main.runMonoDex(Main.java:334)
    at com.android.dx.command.dexer.Main.run(Main.java:277)
    at com.android.dx.command.dexer.Main.main(Main.java:245)
    at com.android.dx.command.Main.main(Main.java:106)

Um dies zu lösen, habe ich versucht, die Datei cordova.jar beim Laden der Bibliothek aar in mein Anwendungsprojekt auszuschließen:

dependencies {
    compile ('com.my.library:hybridstory:1.0'){
        exclude (group: 'org.apache.cordova')
    }
}

Aber das funktioniert nicht. Mache ich etwas falsch

Meine zweite Frage lautet:

Ist es möglich, die Datei /libs/cordova.jar beim Hochladen des Bibliotheksprojekts als aar auszuschließen, anstatt die Datei cordova.jar beim Laden der Bibliothek in eine Anwendung auszuschließen? Wie könnte ich das mit diesem gradle erreichen:

apply plugin: 'com.android.library'
apply plugin: 'maven'

archivesBaseName = 'hybridstory'
group = 'com....'
version = '16.3.0-SNAPSHOT'

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.2"

    defaultConfig {
        minSdkVersion 16
        targetSdkVersion 22
        versionCode 1
        versionName version
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    provided files('libs/cordova-5.1.1.jar')
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:23.4.0'
    compile 'com....'
}

task createJavadoc(type: Javadoc) {
    source = android.sourceSets.main.java.srcDirs
    title = archivesBaseName + " " + version
    options.overview = "src/main/doc-files/overview.html"
    doLast {
        copy {
            from "src/main/doc-files"
            into "$buildDir/docs/javadoc"
        }
    }
}

uploadArchives {
    repositories {
        mavenDeployer {
            repository(url: 'https://maven..../content/repositories/om-releases/')
            snapshotRepository(url: 'https://maven..../content/repositories/om-snapshots/')
        }
    }
}

task androidJavadocsJar(type: Jar, dependsOn: createJavadoc) {
    classifier = 'javadoc'
    from createJavadoc.destinationDir
}

task androidSourcesJar(type: Jar) {
    classifier = 'sources'
    from android.sourceSets.main.java.srcDirs
}

artifacts {
    archives androidSourcesJar
    archives androidJavadocsJar
}

### UPDATE ###

Ich habe versucht, das von Xaver Kapeller vorgeschlagene Gradle-Oszilloskop "zur Verfügung zu stellen" (danke!). Aber es gibt immer noch das cordova.jar, das im aar verpackt ist. Funktioniert der mitgelieferte Bereich einfach nicht oder fehlt mir etwas?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage