Maison >Java >javaDidacticiel >Pourquoi mon projet Android NDK génère-t-il une « ClassNotFoundException » pour mon activité ?
java.lang.ClassNotFoundException : classe introuvable sur le chemin : dexpathlist
Lorsque vous travaillez sur un projet utilisant du NDK purement natif, un un problème est survenu lors de la tentative d'exécution du projet, entraînant le message d'erreur :
java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.irrlicht.example1/android.app.POMActivity}: java.lang.ClassNotFoundException: Didn't find class "android.app.POMActivity" on path: DexPathList[[zip file "/data/app/com.irrlicht.example1-2.apk"],nativeLibraryDirectories=[/data/app-lib/com.irrlicht.example1-2, /system/lib]]
Après enquête le code, il a été découvert que le fichier main.cpp comprenait les lignes suivantes :
#include "android_tools.h" #ifdef _IRR_ANDROID_PLATFORM_ void android_main(android_app* app) { __android_log_print(4 , "pom" , "nothing"); }
Cependant, la déclaration d'activité correspondante dans AndroidManifest.xml était spécifiée comme suit :
<activity android:name="android.app.POMActivity">
La différence entre le nom de l'activité dans le manifeste et le nom de la classe dans le code natif a provoqué l'exception ClassNotFoundException. Pour résoudre le problème, le nom de l'activité dans le manifeste aurait dû être mis à jour pour correspondre au code natif, comme suit :
<activity android:name=".POMActivity">
Une fois cette modification effectuée, le projet s'est exécuté avec succès sans ClassNotFoundException.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!