AnsiString ahue = "";
if ( (apply_to->scriptlen > 0) || (apply_to->script != NULL)) ahue = apply_to->script;
JNIEnv * env = NULL;
int status;
status = ANDROID_ENVIROMENT->GetEnv((void **)&env, JNI_VERSION_1_6);
if(status < 0) ALOG("CANT FIND ENVIROMENT");
ANDROID_ENVIROMENT->AttachCurrentThread(&env, NULL);
if(status < 0) ALOG("CANT ATTACH THREAD");
jstring jstr = env->NewStringUTF(ahue.c_str());
jclass activityClass = env->FindClass("com/example/wirednavalbattle/MainActivity");
if (activityClass == NULL) ALOG("CLASS IS NULL");
jmethodID MemoScript = env->GetMethodID(activityClass, "ScriptMemo", "(Ljava/lang/String;)V");
if (MemoScript == NULL) ALOG("WRONG METHOD");
env->CallVoidMethod(activityClass, MemoScript, jstr); <-- it breaks here
java code
public void ScriptMemo(String text)
{
finish();
}
how i init ANDROID_ENVIROMENT var
JNIEXPORT void JNICALL Java_com_example_wirednavalbattle_GameLibJNIWrapper_PSetEnviroment(JNIEnv * env, jclass cls, jint str)
{
JavaVM* jvm;
env->GetJavaVM(&jvm);
MakeEnv(jvm); //cal in the same h file
}
void MakeEnv(JavaVM * jvm)
{
SetAppEnviroment(jvm); //call in diffrent h file
}
void SetAppEnviroment(JavaVM* jvm)
{
ANDROID_ENVIROMENT = jvm;
}
//now in java when i have my class extends Activity
i overrride onCreate function and place there
THE_RENDER_WRAPPER.NMBSetEnv(0); //set enviroment this calls the function on top
error is:
12-16 02:05:36.140: A/libc(16315): Fatal signal 11 (SIGSEGV) at 0x000002d3 (code=1), thread 16315 (irednavalbattle)
12-16 02:05:36.250: I/DEBUG(137): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***12-16 02:05:36.250: I/DEBUG(137): Build fingerprint: 'orange_pl/ST26i_1267-4750/ST26i:4.1.2/11.2.A.0.31/07_96g:user/release-keys'12-16 02:05:36.250: I/DEBUG(137): pid: 16315, tid: 16315, name: irednavalbattle >>> com.example.wirednavalbattle <<<12-16 02:05:36.250: I/DEBUG(137): signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 000002d3
12-16 02:05:36.520: I/DEBUG(137): #00 pc 00069ff0 /system/lib/libdvm.so (dvmGetVirtualizedMethod(ClassObject const*, Method const*)+75)
12-16 02:05:36.520: I/DEBUG(137): #01 pc 0004cf7d /system/lib/libdvm.so12-16 02:05:36.520: I/DEBUG(137): #02 pc 0005c3d8 /data/data/com.example.wirednavalbattle/lib/libgame.so (_JNIEnv::CallVoidMethod(_jobject*, _jmethodID*, ...)+60)
12-16 02:05:36.530: I/DEBUG(137): be99a154 537a03dc /data/data/com.example.wirednavalbattle/lib/libgame.so (_JNIEnv::CallVoidMethod(_jobject*, _jmethodID*, ...)+64)
looks more like bad address taken, i have no idea why ;x