Не нужно каждый раз делать новый генератор.
Выносим в форму
ToneGenerator: JToneGenerator;
procedure TForm1.FormShow(Sender: TObject);
begin
inherited;
{$IFDEF ANDROID}
ToneGenerator:=nil;
{$ENDIF}
end;
procedure TForm1.beep;
var
Volume: Integer;
StreamType: Integer;
ToneType: Integer;
begin
{$IFDEF ANDROID}
if not assigned(ToneGenerator) then
begin
Volume := TJToneGenerator.JavaClass.MAX_VOLUME; // задаем громкость
StreamType := TJAudioManager.JavaClass.STREAM_NOTIFICATION;
ToneType := TJToneGenerator.JavaClass.TONE_CDMA_SOFT_ERROR_LITE; // тип звука
ToneGenerator := TJToneGenerator.JavaClass.init(StreamType, Volume);
end;
ToneGenerator.startTone(ToneType,1000);
{$ENDIF}
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
inherited;
{$IFDEF ANDROID}
if assigned(ToneGenerator) then
ToneGenerator.release;
{$ENDIF}
end;