web-dev-qa-db-fra.com

java.lang.ClassNotFoundException: la classe n'a pas été trouvée sur le chemin: DexPathList, après la mise à jour de sdk

Bonjour les gars Mon application fonctionnait bien jusqu'à hier, j'ai mis à jour mon SDK hier et il a commencé à donner une erreur en premier il a donné une erreur 

Aucune ressource trouvée à valeurs v24 ....

quelque chose comme ça, j'ai cherché et résolu en changeant les lignes suivantes dans build.gradle

compileSdkVersion 25
buildToolsVersion '25.0.2'

maintenant cette erreur est parti et il est fonctionne complètement bien dans version Android supérieure 7.1.1 mais quand je lance dans la version inférieure de Android il donne après error

E/AndroidRuntime: FATAL EXCEPTION: main
                  Process: com.wowio.ebookreader, PID: 15469
                  Java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.wowio.ebookreader/com.eminosoft.ebookread.activity.SplashScreenActivity}: Java.lang.ClassNotFoundException: Didn't find class "com.eminosoft.ebookread.activity.SplashScreenActivity" on path: DexPathList[[Zip file "/data/app/com.wowio.ebookreader-1.apk"],nativeLibraryDirectories=[/data/app-lib/com.wowio.ebookreader-1, /vendor/lib, /system/lib]]
                      at Android.app.ActivityThread.performLaunchActivity(ActivityThread.Java:2195)
                      at Android.app.ActivityThread.handleLaunchActivity(ActivityThread.Java:2378)
                      at Android.app.ActivityThread.access$800(ActivityThread.Java:155)
                      at Android.app.ActivityThread$H.handleMessage(ActivityThread.Java:1244)
                      at Android.os.Handler.dispatchMessage(Handler.Java:102)
                      at Android.os.Looper.loop(Looper.Java:136)
                      at Android.app.ActivityThread.main(ActivityThread.Java:5433)
                      at Java.lang.reflect.Method.invokeNative(Native Method)
                      at Java.lang.reflect.Method.invoke(Method.Java:515)
                      at com.Android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.Java:1268)
                      at com.Android.internal.os.ZygoteInit.main(ZygoteInit.Java:1084)
                      at dalvik.system.NativeStart.main(Native Method)
                   Caused by: Java.lang.ClassNotFoundException: Didn't find class "com.eminosoft.ebookread.activity.SplashScreenActivity" on path: DexPathList[[Zip file "/data/app/com.wowio.ebookreader-1.apk"],nativeLibraryDirectories=[/data/app-lib/com.wowio.ebookreader-1, /vendor/lib, /system/lib]]
                      at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.Java:56)
                      at Java.lang.ClassLoader.loadClass(ClassLoader.Java:497)
                      at Java.lang.ClassLoader.loadClass(ClassLoader.Java:457)
                      at Android.app.Instrumentation.newActivity(Instrumentation.Java:1068)
                      at Android.app.ActivityThread.performLaunchActivity(ActivityThread.Java:2186)
                      at Android.app.ActivityThread.handleLaunchActivity(ActivityThread.Java:2378) 
                      at Android.app.ActivityThread.access$800(ActivityThread.Java:155) 
                      at Android.app.ActivityThread$H.handleMessage(ActivityThread.Java:1244) 
                      at Android.os.Handler.dispatchMessage(Handler.Java:102) 
                      at Android.os.Looper.loop(Looper.Java:136) 
                      at Android.app.ActivityThread.main(ActivityThread.Java:5433) 
                      at Java.lang.reflect.Method.invokeNative(Native Method) 
                      at Java.lang.reflect.Method.invoke(Method.Java:515) 
                      at com.Android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.Java:1268) 
                      at com.Android.internal.os.ZygoteInit.main(ZygoteInit.Java:1084) 
                      at dalvik.system.NativeStart.main(Native Method) 

J'ai déjà essayé choses suivantes

1. projet propre

2.invalider le cache/redémarrer

3.La suppression de l'application sur l'appareil

déjà examiné ces questions Question 1 , Question 2 rien n'a fonctionné. Comment puis-je résoudre ce problème?

si vous avez besoin de quelque chose, je vais le mettre à jour en question

mon fichier build.gradle

 apply plugin: 'com.Android.application'

Android {
    compileSdkVersion 25
    buildToolsVersion '25.0.2'

    defaultConfig {
        applicationId "com.wowio.ebookreader"
        minSdkVersion 14
        targetSdkVersion 23
        multiDexEnabled true

    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-Android.txt'), 'proguard-rules.txt'
        }
    }
    dexOptions {
        javaMaxHeapSize "4g"
    }
}

dependencies {

    compile 'com.Android.support:appcompat-v7:+'
    compile 'com.google.Android.gms:play-services:+'
    compile 'com.Android.support:multidex:1.0.1'
     // the are many more dependencies i removed to decrease size

    }
6
Manohar Reddy

Ecrivez une classe EnableMultiDex comme ci-dessous

public class EnableMultiDex extends MultiDexApplication {
    private static EnableMultiDex enableMultiDex;
    public static Context context;

    public EnableMultiDex(){
        enableMultiDex=this;
    }

    public static EnableMultiDex getEnableMultiDexApp() {
        return enableMultiDex;
    }

    @Override
    public void onCreate() {
        super.onCreate();
        context = getApplicationContext();

    }
}

et dans AndroidManifest.xml écrivez cette classe dans la balise Application

 <application
    Android:name="YourPakageName.EnableMultiDex"
    Android:hardwareAccelerated="true"
    Android:icon="@drawable/launch_logo"
    Android:label="@string/app_name"
    Android:largeHeap="true"
    tools:node="replace">
4
Manohar Reddy

Oui, peut-être que la réponse ci-dessus est correcte, je n'ai pas essayé tel quel. Mais j'ai résolu de manière opposée est "Vous supprimez l'option d'exécution instantanée dans les paramètres du studio Android" 

Allez dans -> le menu Fichier -> sélectionnez les paramètres -> sélectionnez la construction, l'exécution, le déploiement -> sélectionnez l'exécution instantanée -> cochez la case "Activer l'exécution instantanée".

Cela a fonctionné pour moi. mais certaines applications telles que les applications intégrées de Google Maps nécessitent une exécution instantanée.

4
Kona Suresh

Dans mon cas, mon projet a recommencé à fonctionner après:

  • Désinstaller mon projet de l'émulateur (ou du périphérique réel)
  • Projet propre
  • Faire un projet
2
Jorge Casariego

La même erreur m'est arrivée parce que j'ai installé l'apk de débogage créé dans le dossier output\apk et qu'il s'avère être plus petit et qu'il manque des classes, car il s'agissait probablement du résultat d'une exécution instantanée. off just build APK (par Build-> Build apk dans le menu) et utilisez celui-ci.

0
Udi Reshef

Désactiver l'exécution instantanée a fonctionné pour moi Je pense que ce problème se produit car une classe est manquante lors de la construction avec l'installation (réduction de la taille de l'apk)

0
Tinh Doan