Переполнение локальной справочной таблицы JNI, просмотр полного содержимого справочной таблицы

Я испытываю JNI ERROR (app bug) local reference table overflow (max=512) после нескольких минут запуска моего приложения для Android, созданного с помощью rhomobile.

Выходные последние 10 записей этой таблицы представляют собой все строки Json rpc:

java.lang.String "{"jsonrpc": "2.0... (43 chars)

или иногда 47 символов.

Я понятия не имею, откуда исходит эта ошибка, поэтому хорошим началом было бы увидеть все строковые объекты (так что ... часть).

Можно ли этого добиться и если да, то как?

Изменить:

перед переполнением я периодически получаю следующее сообщение

art Attempt to remove local handle scope entry from IRT, ignoring

Как я могу узнать, какой локальный дескриптор не был удален?


person Heribert    schedule 02.09.2015    source источник
comment
поиск переполнения локальной справочной таблицы или DeleteLocalRef. Я помню, что опубликовал stackoverflow. com/questions/12088207/ и stackoverflow.com/a/14872927/755804 Эти сообщения дадут некоторые подсказки для борьбы с этой ошибкой, но вы, вероятно, не контролируете код, который нужно исправить. (Но если это с открытым исходным кодом...)   -  person 18446744073709551615    schedule 02.09.2015
comment
Спасибо, но я их уже читал. Как вы сказали, это исходит из кода, который я не контролирую. Я думаю, что если я смогу увидеть, что находится внутри этих строк, я смогу увидеть, что вызывает это переполнение. Так есть ли способ расширить эти...?   -  person Heribert    schedule 02.09.2015
comment
PushLocalFrame() / PopLocalFrame()?   -  person 18446744073709551615    schedule 02.09.2015
comment
Ваш код вызывает функцию Java, которая выполняется в течение нескольких минут? Если да, вам, вероятно, придется реорганизовать его и позволить Java вызывать Java. Можно сохранять собственные структуры между собственными вызовами.   -  person 18446744073709551615    schedule 02.09.2015
comment
По крайней мере, не то, что я знаю. Возможно, Родос делает это на заднем плане. Даже если я исключаю свое собственное расширение Java (поэтому используйте только js), возникает ошибка :( Я действительно потерялся из-за этой ошибки. В любом случае, спасибо за ваши идеи   -  person Heribert    schedule 02.09.2015


Ответы (1)


Оказывается, ошибка возникла из-за API rhomobiles для запроса состояния батареи, включения сканирования штрих-кода и захвата ключевых событий.

Я решил проблемы на своем устройстве с Android 4.0.4, обновив до rhodes 5.2.2. Однако обновление не помогло на другом моем устройстве под управлением Android 5. В ответ на мой пост в обсуждениях Motorola rhodes мне сказали, что они работают над проблемой для выпуска 5.3 rhodes, поэтому я надеюсь, что она будет исправлена. в будущем.

person Heribert    schedule 12.09.2015