Перейти к содержанию
Fire Monkey от А до Я

soippv

Пользователи
  • Постов

    1
  • Зарегистрирован

  • Посещение

Сообщения, опубликованные soippv

  1. Здравствуйте!

    Пишу на Delphi в Rad Studio 10 Seattle.

    Вы будете в шоке, но я нашел очень серьезный баг при работе нативных стандартных функций для Android.

    Вот простой пример:

    // Подключите дополнительно:  Androidapi.Helpers
    
    function Test:boolean;
    var
    ii:integer;
    begin
    Result:=false;
    try
          ii:=0;
          while (ii<100000) do
          begin
          try
              ii:=ii+1;
              log.d('Number='+inttostr(ii));
              StringToJString('TEST') ;  //CRASH AFTER ~ 51200
          except
          end;
          Result:=true;
         end;
     except
    end;
    end;

     

    Приложение падает (исключение не ловится) если вызвать эту функцию! В logcat вижу следующую информацию об ошибке: JNI ERROR (app bug): global reference table overflow (max=51200) ....

     

    Получается StringToJString не освобождает память.

    Я пробовал также присваивать Js:JString; Js:= StringToJString('..'); Js._Release ; пробовал много способов по удалению выделенного объекта, но результат был отрицательный!!!

    Помогите решить проблему с использование обычных строк JString!!

    Как правильно освободить память из под JString?

×
×
  • Создать...