Maison >Java >javaDidacticiel >Pourquoi mon projet Android NDK génère-t-il une « ClassNotFoundException » pour mon activité ?

Pourquoi mon projet Android NDK génère-t-il une « ClassNotFoundException » pour mon activité ?

Barbara Streisand
Barbara Streisandoriginal
2024-12-04 07:32:16923parcourir

Why Does My Android NDK Project Throw a `ClassNotFoundException` for My Activity?

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn