Модераторы: javastic
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> JNI ERROR (app bug): attempt to use stale Local, Ошибка при вызове метода 
:(
    Опции темы
WoodMan
  Дата 25.11.2018, 18:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 5.12.2007

Репутация: нет
Всего: нет



Добрый день.
Имею такой код 

Код


extern "C" JNIEXPORT jboolean JNICALL Java_com_example_woodman_testlibsettingsv2_frmMain_SetSystemKeysString(JNIEnv *env, jobject instance, jstring key_Name_) { 
    const char *key_Name = env->GetStringUTFChars(key_Name_, 0);

    // TODO

    jclass secClass = env->FindClass("android/provider/Settings$System");
    jmethodID secMid = env->GetStaticMethodID(secClass, "putString", "(Landroid/content/ContentResolver;Landroid/net/Uri;Ljava/lang/String;Ljava/lang/String;)Z");

    jclass activityThread = env->FindClass("android/app/ActivityThread");
    jmethodID currentActivityThread = env->GetStaticMethodID(activityThread, "currentActivityThread", "()Landroid/app/ActivityThread;");
    jobject at = env->CallStaticObjectMethod(activityThread, currentActivityThread);
    jmethodID getApplication = env->GetMethodID(activityThread, "getApplication", "()Landroid/app/Application;");
    jobject context = env->CallObjectMethod(at, getApplication);

    jclass c_context = env->FindClass("android/content/Context");
    jmethodID m_get_content_resolver = env->GetMethodID(c_context, "getContentResolver", "()Landroid/content/ContentResolver;");
    jobject o_content_resolver;
    o_content_resolver = env->CallObjectMethod(context, m_get_content_resolver);

    jstring jStringParam = env->NewStringUTF(key_Name);
    jboolean jStringKey = env->CallStaticBooleanMethod(secClass, secMid, o_content_resolver, jStringParam, env->NewStringUTF("1"));

    env->DeleteLocalRef(jStringParam);

    return jStringKey;
}



При вызове метода CallStaticBooleanMethod приложение вылетает с ошибкой.

Код


E/stlibsettingsv: JNI ERROR (app bug): attempt to use stale Local 0x31 (should be 0x39)
A/stlibsettingsv: java_vm_ext.cc:542] JNI DETECTED ERROR IN APPLICATION: use of deleted local reference 0x31
    java_vm_ext.cc:542]     from boolean com.example.woodman.testlibsettingsv2.frmMain.SetSystemKeysString(java.lang.String)
    java_vm_ext.cc:542] "main" prio=5 tid=1 Runnable
A/stlibsettingsv: java_vm_ext.cc:542]   | group="main" sCount=0 dsCount=0 flags=0 obj=0x7968c450 self=0x74e3014c00
    java_vm_ext.cc:542]   | sysTid=32691 nice=-10 cgrp=default sched=0/0 handle=0x7568948548
    java_vm_ext.cc:542]   | state=R schedstat=( 316288736 11800419 156 ) utm=29 stm=2 core=5 HZ=100
    java_vm_ext.cc:542]   | stack=0x7fe34db000-0x7fe34dd000 stackSize=8MB
    java_vm_ext.cc:542]   | held mutexes= "mutator lock"(shared held)
    java_vm_ext.cc:542]   native: #00 pc 00000000003c26c0  /system/lib64/libart.so (art::DumpNativeStack(std::__1::basic_ostream<char, std::__1::char_traits<char>>&, int, BacktraceMap*, char const*, art::ArtMethod*, void*, bool)+220)



Скажите пожалуйста, что я делаю не так? Так как методы с Get отрабатываются великолепно.
Спасибо.
PM MAIL   Вверх
Google
  Дата 16.10.2019, 10:03 (ссылка)  





  Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Android | Следующая тема »


 




[ Время генерации скрипта: 0.0820 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.