Einzelnen Beitrag anzeigen

CHackbart

Registriert seit: 22. Okt 2012
263 Beiträge
 
#1

Java Bridge Problem

  Alt 4. Sep 2019, 10:54
Hallo,

ich sitze gerade an folgendem Problem und weiß nicht woran das liegt, dass es nicht geht.

If möchte eine Factory Klasse erstellen und benutze dazu folgendes Interface

Delphi-Quellcode:
  [JavaSignature('com/google/android/exoplayer2/upstream/DataSource')]
  JDataSource = interface(IJavaInstance)
    ['{54F0F6B3-3EC8-4327-874D-2FA5BF0074EF}']
  end;
  TDataSource = class(TJavaGenericImport<JDataSourceClass, JDataSource>) end;

  {**********************************************}
  JDataSource_FactoryClass = interface(IJavaClass)
    ['{F3647398-F5A3-43CE-992C-A8EFCBDD2E64}']
    {class} function createDataSource: JDataSource; cdecl;
  end;

  {**************************************************************************}
  [JavaSignature('com/google/android/exoplayer2/upstream/DataSource$Factory')]
  JDataSource_Factory = interface(IJavaInstance)
    ['{C2E17D43-9101-4D1D-ACDC-B3DD5FC26671}']
    function createDataSource: JDataSource; cdecl;
  end;
  TJDataSource_Factory = class(TJavaGenericImport<JDataSource_FactoryClass, JDataSource_Factory>) end;
mein Code schaut wie folgt aus, nur meckert dann irgendwann das Javaprogramm, dass das createDataSource Interface nicht vorhanden ist.

Delphi-Quellcode:
type
 TJUDPDataSource_Factory = class(TJavaLocal, JDataSource_Factory)
  function createDataSource: JDataSource; cdecl;
 end;

function TJUDPDataSource_Factory.createDataSource: JDataSource; cdecl;
begin
 result := TJUdpDataSource.JavaClass.init(nil, 2000, 20000);
end;
Der Aufruf schaut wie folgt aus:

Delphi-Quellcode:
   udpSourceFactory := TJUDPDataSource_Factory.Create;
   aVideoSource := TjExtractorMediaSource.JavaClass.init(StrToJURI(aDataSource),
    udpSourceFactory,
    TJDefaultExtractorsFactory.JavaClass.init, nil, nil);
Hat jemand vielleicht eine Idee, woran das liegen könnte?

Und gerade als ich das ganze erneut kompilieren wollte kam folgende Fehlermeldung:
[Exec Fehler] EXEC(1): Default method desugaring of `com.google.android.exoplayer2.source.BaseMediaSou rce` failed because its super class `java.lang.Object` is missing

Christian

Geändert von CHackbart ( 4. Sep 2019 um 13:23 Uhr)
  Mit Zitat antworten Zitat