web-dev-qa-db-fra.com

MultiDexApplication non reconnu

Essayer d'utiliser MultiDexApplication dans mon application, mais la classe n'est pas reconnue lorsque j'essaie d'étendre l'activité de mon application avec elle.

Voici mon fichier build.gradle:

apply plugin: 'com.Android.application'

Android {
    compileSdkVersion 21
    buildToolsVersion '21.0.1'
    defaultConfig {
        applicationId 'com.myapp'
        minSdkVersion 10
        targetSdkVersion 21
        versionCode 115
        versionName '4.8'
    }

    buildTypes {
        debug {
            debuggable true
            runProguard false
            proguardFiles getDefaultProguardFile('proguard-Android.txt'), 'proguard-rules.pro'
        }
        release {
            debuggable false
            runProguard true
            zipAlign true
            proguardFiles getDefaultProguardFile('proguard-Android.txt'), 'proguard-rules.pro'
        }
    }

    packagingOptions {
        exclude 'META-INF/LICENSE.txt'
        exclude 'META-INF/NOTICE.txt'
    }

    lintOptions {
        checkReleaseBuilds false
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])

    compile 'com.google.Android.gms:play-services:6.1.11'

    compile 'com.Android.support:appcompat-v7:21.0.0'

    compile 'com.nineoldandroids:library:2.4.0'
    compile 'com.viewpagerindicator:library:2.4.1@aar'
    compile project(':facebook')
}

Vous pouvez voir que je compile le 21, en utilisant les derniers outils de construction, les derniers services google play et la bibliothèque de support.

Quelqu'un a-t-il réussi à faire fonctionner cela?

20
JMRboosties

La classe MultiDexApplication ne fait pas partie de la bibliothèque appcompat-v7. Il est expédié dans un pot séparé (appelé Android-support-multidex).

Trouvez le Android-support-multidex.jar sous /sdk/extras/Android/support/multidex/library/libs (disponible à partir de la révision 21 de la bibliothèque de support ) et copiez-le dans le dossier libs de votre projet.

Mise à jour (11/5/2014):
Le pot est maintenant disponible dans le référentiel central:

dependencies {
  ...
  compile 'com.Android.support:multidex:1.0.0'
}

Pour plus d'informations, voir ici .

37
Alex Lipov

Bien que cette question soit assez ancienne, j'ai eu cette erreur dans une configuration multi-modules en essayant de construire les différents modules ensemble en un seul fichier APK pour l'API <21. J'ai déjà refactorisé vers AndroidX, mais les documents multidex ne mentionnent pas encore AndroidX.

Si vous utilisez AndroidX, assurez-vous de remplacer l'ancienne dépendance multidex

compile 'com.Android.support:multidex:1.0.3'

avec le nouveau

implementation 'androidx.multidex:multidex:2.0.0'
18
jossiwolf