Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Cross-Platform-Entwicklung (https://www.delphipraxis.net/91-cross-platform-entwicklung/)
-   -   Java Bridge Problem (https://www.delphipraxis.net/201857-java-bridge-problem.html)

CHackbart 4. Sep 2019 10:54

Java Bridge Problem
 
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


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:21 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz