Java 位图转换delphi xe5

Java 位图转换delphi xe5,java,android,delphi,bitmap,firemonkey,Java,Android,Delphi,Bitmap,Firemonkey,我有一个功能,可以将安卓安装的应用程序与它们的图标结合起来。该函数提取Jdrawable并将其转换为Jbitmap(为了测试此函数,我将此Jbitmap保存到文件中,一切正常),但如果我尝试将此Jbitmap转换为Tbitmap,我在此行遇到访问冲突: 如果是Result.Map(TMapAccess.maWrite,BitmapData),则 function JBitmapToBitmap(const AImage: JBitmap): TBitmap; var ImageData: T

我有一个功能,可以将安卓安装的应用程序与它们的图标结合起来。该函数提取Jdrawable并将其转换为Jbitmap(为了测试此函数,我将此Jbitmap保存到文件中,一切正常),但如果我尝试将此Jbitmap转换为Tbitmap,我在此行遇到访问冲突:

如果是Result.Map(TMapAccess.maWrite,BitmapData),则

function JBitmapToBitmap(const AImage: JBitmap): TBitmap;
var
  ImageData: TJavaArray<Integer>;
  BitmapData: TBitmapData;
  Width, Height: Integer;
begin
  Assert(AImage <> nil);
  Width := AImage.getWidth;
  Height := AImage.getHeight;
  ImageData := TJavaArray<Integer>.Create(Width * Height);
  AImage.getPixels(ImageData, 0, Width, 0, 0, Width, Height);
  if Result.Map(TMapAccess.maWrite, BitmapData) then    <--- access violation
  try
    Result := TBitmap.Create(Width, Height);
    Move(ImageData.Data^, BitmapData.Data^, Width * Height * SizeOf(Integer));
  finally
    Result.Unmap(BitmapData);
  end
  else
    Result := nil;
end;
函数JBitmapToBitmap(const-AImage:JBitmap):TBitmap;
变量
ImageData:TJavaArray;
BitmapData:TBitmapData;
宽度、高度:整数;
开始
断言(目标为零);
宽度:=AImage.getWidth;
高度:=AImage.getHeight;
ImageData:=TJavaArray.Create(宽度*高度);
获取像素(图像数据,0,宽度,0,0,宽度,高度);

如果使用Result.Map(TMapAccess.maWrite,BitmapData),则应在调用Map方法之前创建Result对象