Обертка Delphi для JAR от KATLIN AAR

Я собрал библиотеку с Android Studio в .AAR, а затем извлек .JAR из .AAR.

JAVA2OP -jar evotor.jar имеют ошибки:

Разборная банка: evotor.jar

Нарушение доступа по адресу 0042B0B6 в модуле «Java2OP.exe». Чтение адреса 7FD70000

У меня есть обертка:

unit jdelphi;

interface

uses
  AndroidAPI.JNIBridge,
  Androidapi.JNI.JavaTypes;

type
  JUser = interface;

  JUserClass = interface(JObjectClass)
    ['{A4B29440-8C8B-4C1F-A8E7-B7612D4FEEB4}']

    function getUuid : JString; cdecl;                                         
    function hashCode : Integer; cdecl;                                        
    function init(uuid : JString; secondName : JString; firstName : JString; inn : JString; phone : JString; pin : JString; roleUuid : JString; roleTitle : JString) : JUser; cdecl; overload;
    function init(uuid : JString; secondName : JString; firstName : JString; phone : JString; pin : JString; roleUuid : JString; roleTitle : JString) : JUser; cdecl; overload;
    function toString : JString; cdecl;                                     
  end;

  [JavaSignature('ru/evotor/framework/users/User')]
  JUser = interface(JObject)
    ['{2558685B-2BDC-4FCE-901F-3B53604E37C6}']
    function equals(JObjectparam0 : JObject) : boolean; cdecl;                 
    function hashCode : Integer; cdecl;                                       
    function toString : JString; cdecl;                                       
  end;

  TJUser = class(TJavaGenericImport<JUserClass, JUser>)
  end;

implementation

procedure RegisterTypes;

begin
  TRegTypes.RegisterType('jdelphi.JUser', TypeInfo(jdelphi.JUser));
end;

initialization
  RegisterTypes;
end.

Моя программа на Android заканчивается, когда вы получаете значение uuid.

unit Unit1;

interface

uses
  System.SysUtils, System.Types, System.UITypes, System.Classes,
  System.Variants,
  FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs,
  FMX.Controls.Presentation, FMX.StdCtrls, FMX.Objects,
  FMX.Platform.Android, Androidapi.JNI.JavaTypes, Androidapi.Helpers;

type
  TForm1 = class(TForm)
    btnExit: TButton;
    StyleBook1: TStyleBook;
    Text1: TText;
    btnGet: TButton;
    lbResult: TLabel;
    procedure btnExitClick(Sender: TObject);
    procedure btnGetClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.fmx}

uses jdelphi;

procedure TForm1.btnExitClick(Sender: TObject);
begin
  MainActivity.finish;
end;

procedure TForm1.btnGetClick(Sender: TObject);
// var
// TestClass: JUser;
begin
  // TestClass := TJUser.Create;
  // lbResult.Text:= JStringToString(TestClass.getUuid);

  lbResult.Text := JStringToString(TJUser.JavaClass.getUuid);

end;

end.

Можно ли использовать библиотеку, полученную таким образом (и написанную в Котлине) в Delphi?

android,delphi,wrapper,

0

Ответов: 0

Обертка Delphi для JAR от KATLIN AAR

Я собрал библиотеку с Android Studio в .AAR, а затем извлек .JAR из .AAR.

JAVA2OP -jar evotor.jar имеют ошибки:

Разборная банка: evotor.jar

Нарушение доступа по адресу 0042B0B6 в модуле «Java2OP.exe». Чтение адреса 7FD70000

У меня есть обертка:

unit jdelphi;

interface

uses
  AndroidAPI.JNIBridge,
  Androidapi.JNI.JavaTypes;

type
  JUser = interface;

  JUserClass = interface(JObjectClass)
    ['{A4B29440-8C8B-4C1F-A8E7-B7612D4FEEB4}']

    function getUuid : JString; cdecl;                                         
    function hashCode : Integer; cdecl;                                        
    function init(uuid : JString; secondName : JString; firstName : JString; inn : JString; phone : JString; pin : JString; roleUuid : JString; roleTitle : JString) : JUser; cdecl; overload;
    function init(uuid : JString; secondName : JString; firstName : JString; phone : JString; pin : JString; roleUuid : JString; roleTitle : JString) : JUser; cdecl; overload;
    function toString : JString; cdecl;                                     
  end;

  [JavaSignature('ru/evotor/framework/users/User')]
  JUser = interface(JObject)
    ['{2558685B-2BDC-4FCE-901F-3B53604E37C6}']
    function equals(JObjectparam0 : JObject) : boolean; cdecl;                 
    function hashCode : Integer; cdecl;                                       
    function toString : JString; cdecl;                                       
  end;

  TJUser = class(TJavaGenericImport<JUserClass, JUser>)
  end;

implementation

procedure RegisterTypes;

begin
  TRegTypes.RegisterType('jdelphi.JUser', TypeInfo(jdelphi.JUser));
end;

initialization
  RegisterTypes;
end.

Моя программа на Android заканчивается, когда вы получаете значение uuid.

unit Unit1;

interface

uses
  System.SysUtils, System.Types, System.UITypes, System.Classes,
  System.Variants,
  FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs,
  FMX.Controls.Presentation, FMX.StdCtrls, FMX.Objects,
  FMX.Platform.Android, Androidapi.JNI.JavaTypes, Androidapi.Helpers;

type
  TForm1 = class(TForm)
    btnExit: TButton;
    StyleBook1: TStyleBook;
    Text1: TText;
    btnGet: TButton;
    lbResult: TLabel;
    procedure btnExitClick(Sender: TObject);
    procedure btnGetClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.fmx}

uses jdelphi;

procedure TForm1.btnExitClick(Sender: TObject);
begin
  MainActivity.finish;
end;

procedure TForm1.btnGetClick(Sender: TObject);
// var
// TestClass: JUser;
begin
  // TestClass := TJUser.Create;
  // lbResult.Text:= JStringToString(TestClass.getUuid);

  lbResult.Text := JStringToString(TJUser.JavaClass.getUuid);

end;

end.

Можно ли использовать библиотеку, полученную таким образом (и написанную в Котлине) в Delphi?

00андроид, Дельфы, обертка,
Похожие вопросы