J'essaie d'ajouter Multidex support à mon application. Mais je reçois une erreur:
Java.lang.RuntimeException: Unable to instantiate activity ComponentInfo: Java.lang.ClassNotFoundException: Didn't find class "androidx.multidex.MultiDexApplication" on path: DexPathList[[Zip file "/data/app/com.dfn.partner-2.apk"],nativeLibraryDirectories[/data/app-lib/se.Android-2, /vendor/lib, /system/lib]]
Mon diplômé a:
defaultConfig {
multiDexEnabled true
}
et
depenencies {
...
implementation 'androidx.multidex:multidex:2.0.1'
...
}
Mon AndroidManifest.xml a:
<application
Android:name="androidx.multidex.MultiDexApplication"
... >
...
</application>
Qu'est-ce qui pourrait mal?
Pour le niveau api <21, la plateforme utilise le runtime Dalvik pour exécuter le code d'application. Dans de tels cas, la bibliothèque multidex doit faire partie du fichier DEX principal de votre application, qui peut ensuite gérer l'accès aux fichiers DEX supplémentaires et au code qu'ils contiennent.
Dans votre cas, il semble que la bibliothèque Multidex ne soit pas présente dans le fichier dex principal et donc au démarrage, votre application vous donne une erreur: Java.lang.ClassNotFoundException: Didn't find class "androidx.multidex.MultiDexApplication"
Vous devez spécifier explicitement ces classes multidex dans multiDexKeepFile ou multiDexKeepProguard pour marquer celles-ci comme requises dans dex principal.
multiDexKeepFile
Android {
buildTypes {
release {
multiDexKeepFile file('multidex-main-dex-list.txt')
...
}
}
}
Le contenu de multidex-main-dex-list.txt se présente comme suit:
androidx.multidex.MultiDexApplication
multiDexKeepProguard
Android {
buildTypes {
release {
multiDexKeepProguard file('multidex-main-dex-list.pro')
...
}
}
}
Le contenu de multidex-main-dex-list.txt se présente comme suit:
-keep class androidx.multidex.MultiDexApplication
si vous utilisez la dépendance d'utilisation androidx ci-dessous
dependencies {
// ...
def multidex_version = "2.0.1"
implementation "androidx.multidex:multidex:$multidex_version"
}
pour l'utilisation de la bibliothèque de support
dependencies {
// ...
implementation 'com.Android.support:multidex:1.0.3'
}