Поток Android NDK прерывает программу

#android #multithreading #sdk #java-native-interface #android-ndk

#Android #многопоточность #sdk #java-native-interface #android-ndk

Вопрос:

Почему этот поток c (NDK) останавливает работу всей программы?

 {   
sleep(2);

// The JNIEnv
JNIEnv* jenv = NULL;

// attach thread to running JVM
int err = jvm->AttachCurrentThread(amp;jenv, NULL);

char szerr[256];
sprintf(szerr, "AttachCurrentThread() returned: %d", err);

__android_log_print(ANDROID_LOG_ERROR, "MYPROG", szerr);

jvm->DetachCurrentThread();

sleep (5);
}
  

szerr равен 0, и программа не будет прервана, если я не подключу currentThread . Прерывание
происходит без указания какой-либо ошибки в консоли / logcat.

Любая помощь?

Ответ №1:

Проверьте это:

http://comments.gmane.org/gmane.comp.handhelds.android.ndk/4687

Возможно, вам следует использовать GetEnv() , чтобы проверить, настроена ли среда, перед вызовом AttachCurrentThread() (в противном случае в этом нет необходимости). Больше информации здесь.

Комментарии:

1. спасибо, но я больше не буду этим заниматься. Я думаю, что, возможно, я решил это, кстати … :/ В любом случае, этот материал был оставлен.