3 votes

androidx et la dépendance de support provoquent une erreur multidex

J'ai un projet de bibliothèque qui utilise androidx dépendance en elle.

implementation 'androidx.appcompat:appcompat:1.0.0-rc01'

Après avoir ajouté le projet de bibliothèque dans mon application, j'obtiens de multiples erreurs liées à dexMerger , MultiDex , Multiple dex files define Landroid/support/v4/... .

J'ai donc cherché ce fichier en utilisant window+O (Naviguer --> Classe). J'ai ensuite constaté que la même classe est utilisée dans 'androidx.appcompat:appcompat:1.0.0-rc01' y android.support.v4.. bibliothèques . J'ai donc essayé d'exclure comme ci-dessous -

    implementation('androidx.appcompat:appcompat:1.0.0-rc01') {
         exclude module: 'support-v4'
    }

J'ai également ajouté multidex true mais rien n'a aidé. J'ai lu des articles sur AndroidX semble contenir de nombreuses classes qui sont similaires aux bibliothèques de support. Que faut-il faire dans ce cas ? J'ai la dernière version d'Android Studio et mon compileSdkVersion es 28 . Toutes mes dépendances sont à jour. J'ai déjà ajouté multidex et ma classe d'application étend également MultiDexApplication .

1voto

Max Points 6217

Il suffit de régler le multidex true n'est pas suffisant.

Vous devez d'abord inclure cette dépendance

implementation 'com.android.support:multidex:1.0.3'

puis

defaultConfig {
        ...
        multiDexEnabled true
    }

alors dans votre manifeste

<application
        android:name="android.support.multidex.MultiDexApplication" >
        ...
</application>

1voto

Jagjit Singh Points 458

Utilisez la commande suivante pour vérifier quelle dépendance a une classe en double

./gradlew app:dépendances

Ensuite, excluez le module comme suit

{
  exclude group: 'com.android.support'
}

J'espère que cela résoudra votre problème ! Faites-moi savoir si vous avez d'autres problèmes !

0voto

Essayez

android {
    dexOptions {
        preDexLibraries = false
    }
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X