Je suis débutant sur android, j'ai créé une application qui possède une connection BDD externe à l'aide de tuto. Tout fonctionnait correctement jusqu'au début des vacances mais désormais je rencontre un problème que je n'arrive pas à situé...
Lorsque je lance l'appli, elle plante me semble t-il sur la récupération d'info sur des données BDD.
Dans le logcat voici la première erreur que je vois en lancant l'appli :
Cela n'empêche pas le lancement de la première fenêtre de connexion.
Je me connecte (la connexion se fait sans la BDD) et ensuite l'appli plante avec dans le logcat :
2019-09-07 09:39:22.057 13638-13638/abb.gestiondumateriel D/AndroidRuntime: Shutting down VM
2019-09-07 09:39:22.058 13638-13638/abb.gestiondumateriel E/AndroidRuntime: FATAL EXCEPTION: main
Process: abb.gestiondumateriel, PID: 13638
java.lang.NoClassDefFoundError: Failed resolution of: Lorg/apache/http/message/BasicNameValuePair;
at abb.gestiondumateriel.outils.AccesHTTP.addParam(AccesHTTP.java:32)
at abb.gestiondumateriel.modele.AccesDistant.envoi(AccesDistant.java:163)
at abb.gestiondumateriel.controleur.Controle.getInstance(Controle.java:49)
at abb.gestiondumateriel.vue.ChoixActivityNew.onCreate(ChoixActivityNew.java:27)
at android.app.Activity.performCreate(Activity.java:7224)
at android.app.Activity.performCreate(Activity.java:7213)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1272)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2926)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3081)
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1831)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:201)
at android.app.ActivityThread.main(ActivityThread.java:6806)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:547)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:873)
Caused by: java.lang.ClassNotFoundException: Didn't find class "org.apache.http.message.BasicNameValuePair" on path: DexPathList[[zip file "/data/app/abb.gestiondumateriel-dnddmY3Xpcwz_GYJ5bIgQQ==/base.apk"],nativeLibraryDirectories=[/data/app/abb.gestiondumateriel-dnddmY3Xpcwz_GYJ5bIgQQ==/lib/arm64, /system/lib64, /vendor/lib64]]
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:171)
at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
at abb.gestiondumateriel.outils.AccesHTTP.addParam(AccesHTTP.java:32)
at abb.gestiondumateriel.modele.AccesDistant.envoi(AccesDistant.java:163)
at abb.gestiondumateriel.controleur.Controle.getInstance(Controle.java:49)
at abb.gestiondumateriel.vue.ChoixActivityNew.onCreate(ChoixActivityNew.java:27)
at android.app.Activity.performCreate(Activity.java:7224)
at android.app.Activity.performCreate(Activity.java:7213)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1272)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2926)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3081)
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1831)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:201)
at android.app.ActivityThread.main(ActivityThread.java:6806)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:547)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:873)
2019-09-07 09:39:22.069 13638-13638/abb.gestiondumateriel I/Process: Sending signal. PID: 13638 SIG: 9
En cherchant, j'ai trouvé que l'on devait avec API28 ajouter dans la manifest ceci :
2019-09-07 09:44:00.065 14194-14194/abb.gestiondumateriel E/AndroidRuntime: FATAL EXCEPTION: main
Process: abb.gestiondumateriel, PID: 14194
java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String java.lang.String.toString()' on a null object reference
at abb.gestiondumateriel.outils.AccesHTTP.onPostExecute(AccesHTTP.java:57)
at abb.gestiondumateriel.outils.AccesHTTP.onPostExecute(AccesHTTP.java:21)
at android.os.AsyncTask.finish(AsyncTask.java:695)
at android.os.AsyncTask.access$600(AsyncTask.java:180)
at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:712)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:201)
at android.app.ActivityThread.main(ActivityThread.java:6806)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:547)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:873)
2019-09-07 09:44:00.077 14194-14194/abb.gestiondumateriel I/Process: Sending signal. PID: 14194 SIG: 9
Merci de l'aide que vous pourrez me donner pour comprendre ce qui a changé et qui cloche...
Utiliser Apache pour faire les appels HTTP est une très mauvaise pratique. Tu dois mtn utiliser URLConnection ou des bilbiothèques tierces un peu plus haut niveau.
Concernant ta deuxième erreur, il convient de nous montrer le code de ta classe AccesHTTP. Sans ça impossible de t'aider.
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Mon site - Mon livre sur le XML - Mon blog