struct android_app* app = g_platform.getAndroid();
jobject clazz = app->activity->clazz;
JavaVM* java = app->activity->vm;

	JNIEnv* env;

	java->AttachCurrentThread(&env, NULL);

	jclass activityClass = env->FindClass("android/app/NativeActivity");

	// let's find our java!
	jmethodID getClassLoader = env->GetMethodID(activityClass, "getClassLoader", "()Ljava/lang/ClassLoader;");
	jobject cls = env->CallObjectMethod(clazz, getClassLoader);
	jclass classLoader = env->FindClass("java/lang/ClassLoader");

	jmethodID findClass = env->GetMethodID(classLoader, "loadClass", "(Ljava/lang/String;)Ljava/lang/Class;");
	LOGI("findClass=%p", findClass);

	jstring strClassName = env->NewStringUTF("com/example/native_activity/MyAct");
	jclass classIWant = (jclass)env->CallObjectMethod(cls, findClass, strClassName);
	LOGI("classIWnant=%p", classIWant);


	jmethodID constructor = env->GetMethodID(classIWant, "<init>","()V"); // crashing
	LOGI("constructor=%p", constructor);
	jobject my_obj = env->CallObjectMethod(classIWant, constructor);

	/* method */
	jmethodID slog = env->GetMethodID(classIWant, "simpleLog","()V");
	env->CallVoidMethod(my_obj, slog);

Witam.
Mam dość poważny problem z JNI, owy kod za żadne skarby nie widzi mojej klasy MyAct. Przechodzi przez cały kod, ale otrzymuję taki oto błąd:

10-02 1714.277: W/dalvikvm(30128): dvmFindClassByName rejecting 'com/example/native_activity/MyActq'

Lecz jeżeli zamienię **/MyAct na nie istniejącą klasę (np. **/MyXAct) to program zaraz wywala próbując użyć classIWant (// crashing).

W manifest oczywiście mam ustawione android:hasCode="true"

Jest ktoś kto rozumie coś z tego?