Einzelnen Beitrag anzeigen

philipp.hofmann
Online

Registriert seit: 21. Mär 2012
Ort: Hannover
862 Beiträge
 
Delphi 10.4 Sydney
 
#15

AW: Android-Bundle: Problematische Geräte 50% im Vergleich zu Android-32-APK

  Alt 23. Jan 2020, 17:03
Jetzt mal noch die Info, wie man externe so-Files aktuell einbinden kann, wenn man Bundles benutzt. Ich habe die Libraries jetzt in folgende Pfade gesteckt:

- AV-Player
- 32-Bit-so-files -> library\lib\armeabi-v7a\
- 64-Bit-so-files -> library\lib\arm64-v8a\
- OpenSSL
- 32-Bit-so-files -> library\lib\armeabi-v7a\
- 64-Bit-so-files -> llibrary\lib\arm64-v8a\
Das Problem hier ist, dass je nach Device die Libraries in unterschiedlichen Pfaden gesucht werden. Lösung ist für mich jetzt, dass ich diese Pfade hintereinander durchprobiere, wobei dies je nach Komponente unterschiedlich geht. Dies ist deutlich platzsparender als die Lösung vom 29. Dez 2019 11:10, wo die Libraries für Android-32 auch unnötigerweise die 64-bit-Versionen enthielten und umgekehrt.

Open-SSL:
Delphi-Quellcode:
  {$IFDEF ANDROID}
    IdOpenSSLSetLibPath(String.Empty);
    IdSSLOpenSSLHeaders.Load();
    error:=IdSSLOpenSSLHeaders.WhichFailedToLoad();
    if (length(error)>0) then
    begin
      IdOpenSSLSetLibPath(IncludeTrailingPathDelimiter(TPath.GetLibraryPath));
      IdSSLOpenSSLHeaders.Load();
      error:=IdSSLOpenSSLHeaders.WhichFailedToLoad();
      if (length(error)>0) then
      begin
        IdOpenSSLSetLibPath(IncludeTrailingPathDelimiter(TPath.GetDocumentsPath));
        IdSSLOpenSSLHeaders.Load();
        log.d('SSL-Version(3): '+OpenSSLVersion);
        error:=IdSSLOpenSSLHeaders.WhichFailedToLoad();
        if (length(error)>0) then
        begin
          log.d('SSL-Errors: '+error);
        end;
      end else begin
        log.d('SSL-Version(2): '+OpenSSLVersion);
      end;
    end else begin
      log.d('SSL-Version(1): '+OpenSSLVersion);
    end;
  {$ENDIF}
AV-Player (http://www.flashavconverter.com/cont...hi-component):
Delphi-Quellcode:
  {$IFDEF ANDROID}
    try
      avlib.FFMPEG_DLL_PATH:=string.Empty;
      avPlayerVideo:=TAVPlayer.Create(mainForm);
    except on E: Exception do
      begin
        avlib.FFMPEG_DLL_PATH:=IncludeTrailingPathDelimiter(TPath.GetLibraryPath);
        avPlayerVideo:=TAVPlayer.Create(mainForm);
      end;
    end;
  {$ENDIF}
Ich bin da mit EMBT noch dran (https://quality.embarcadero.com/browse/RSP-27336), wobei die Hauptkommunikation via E-Mail läuft.
  Mit Zitat antworten Zitat