コミュニティ、
私の問題は次のとおりです。
TBitmaps を使用したい Kindle Fire 用の XE7 FMX アプリケーションを作成しました。問題は、デバイスのストレージから TBitmap を作成できないことです。アプリケーションを自分のコンピューターで Win32 アプリとして実行するとすべて動作しますが、Android アプリとして実行すると、タイトルから例外がスローされます。
これが私のコードです:
procedure TForm1.Button1Click(Sender: TObject);
var
MyImage: TBitmap;
Path: String;
begin
Path := TPath.GetDocumentsPath + TPath.DirectorySeparatorChar + 'test.png';
if TFile.Exists(path, true) then
begin
MyImage := TBitmap.CreateFromFile(path); //<- Here it fails
end;
end;
このコードは意味がありませんが、これは単なるテスト プログラムです。これが機能する場合、メイン プログラムで使用できますが、この時点で既に失敗しています。(そして、彼が VCL ではなく FMX.Graphics.TBitmap を使用していることを既に確認しています)
これが私のスタックです:
System._DbgExcNotify(86,0x11fc0b0,0x5bf3b0dd,0x11fc0b0,0x5bf3b0dd)
System.NotifyReRaise(0x11fc0b0,0x5bf3b0dd)
System._RaiseAtExcept(0x11fc0b0,0x5bf3b0dd)
System._RaiseExcept(0x11fc0b0)
System.Internal.Excutils.DoRaiseJNIExceptionCallBack('class java.lang.OutOfMemoryError','java.lang.OutOfMemoryError')
Androidapi.Jni.HandleJNIException(0xbe42f8)
Androidapi.Jnimarshal.ExecJNI(0x5d226490,0x125e998)
:5C8B8A14 DispatchToImport
:5C8C4FA8 dispatch_first_stage_intercept
Fmx.Graphics.Android.TBitmapCodecAndroid.LoadFromFile(0x127e7f8,'/data/data/com.embarcadero.Project1/files/test.png',0x1297040,4096)
Fmx.Graphics.TBitmapCodecManager.LoadFromFile(0x5cbab65c,'/data/data/com.embarcadero.Project1/files/test.png',0x1297040,4096)
Fmx.Graphics.TBitmap.LoadFromFile(0x127e788,'/data/data/com.embarcadero.Project1/files/test.png')
Fmx.Graphics.TBitmap.TBitmap(0x127e788,1,'/data/data/com.embarcadero.Project1/files/test.png')
Unit1.TForm1.Button1Click(0xad1c48,0x103dbd8)
[...] rest is unneccessary
エラーはどこにありますか? それは私のせいですか、それともデルフィに何か問題がありましたか?