2016-07-08 3 views
3

Ich stucking mit diesem Fehler ein „ausschließen Modul“ Regel versucht, mein phonegap ProjektIn einem Eintrag in plugin.xml für Cordova

enter image description here Soweit ich weiß, um diesen Fehler zu bauen, weil es eine Bibliothek ist, zweimal im Projekt festgelegt. ich alle meine Bibliotheken überprüfen, und ich fand nur eine Bibliothek verursacht dies (in einer meiner Plugins gefunden)

<framework src="com.android.support:design:23.4.0"/> 

Die Sache ist, kann ich ein Modul Regel in der Datei plugin.xml ausschließen? Ich glaube, ich ausschließen müssen com.android.supportv4

Antwort

3

Schließlich beschloss ich, es hatte ich mit den folgenden Zeilen ein Build-extras.gradle Datei in meinem Plugin zu erstellen:

configurations { 
    all*.exclude group: 'com.android.support', module: 'support-v4' 
    all*.exclude group: 'com.android.support', module: 'support-annotations'} 

Dann dieses gradle Datei Notwendigkeit, in plugin.xml-Datei importiert werden:

<framework src="build-extras.gradle" custom="true" type="gradleReference" /> 
+0

Schöne Entdeckung! In welchem ​​Verzeichnis Ihres Plugins haben Sie die Datei build-extras.gradle erstellt? –

0

ich würde https://github.com/dpa99c/cordova-android-support-gradle-release sehr empfehlen, die ein „Plugin verschiedene Versionen der Android-Support-Bibliotheken von anderen Plugins angegeben ausrichten“ ist.

Sie verwenden eine clever gradle dependency resolution das Problem zu lösen:

configurations.all { 
    resolutionStrategy.eachDependency { DependencyResolveDetails details -> 
     if (details.requested.group in ['com.android.support'] && !(details.requested.name in ['multidex', 'multidex-instrumentation'])) { details.useVersion "26.1.0"} 
    } 
} 

Dies vermeidet das Problem alle Android-Unterstützung Libs zu entfernen, die Plugins mit fehlenden Abhängigkeiten/Versagen gradle Synchronisierungen führen kann.

Verwandte Themen