Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Cross-Platform-Entwicklung (https://www.delphipraxis.net/91-cross-platform-entwicklung/)
-   -   Android-Bundle: Problematische Geräte 50% im Vergleich zu Android-32-APK (https://www.delphipraxis.net/202777-android-bundle-problematische-geraete-50-im-vergleich-zu-android-32-apk.html)

philipp.hofmann 5. Mär 2020 14:14

AW: Android-Bundle: Problematische Geräte 50% im Vergleich zu Android-32-APK
 
Natürlich teste ich die App sowohl auf 32- als auch auf 64-bit Geräten. Das Problem passiert auch nicht bei meinen Geräten, das wäre easy. Es passiert nur, wenn du das Bundle hochlädst und dann der Prelaunch-Report von Google mit einer Vielzahl von Geräten durchgeführt wird. Für zumindest zwei Bibliotheken habe ich die Lösung ja auch hier schon gepostet, man muss eben nur wissen wie.

philipp.hofmann 12. Mär 2020 12:34

AW: Android-Bundle: Problematische Geräte 50% im Vergleich zu Android-32-APK
 
Hier zur Info, die Lösung, welche für die TAVPlayer-Implementierung und zwar sowohl für das Google-Bundle als auch die Amazon-Auslieferung funktioniert. Dafür waren gemeinsam mit dem Delphi-Support mindestens 5 Testrunden notwendig bis alles klappte.

Hi Lifang,

the following avlib.pas-implementation was now successful for all Google-Prelaunch-(32/64bit-Bundle) and all Amazon-Prelaunch-Tests (32bit):

a)
Delphi-Quellcode:
   {$IFDEF Android}
        FFMPEG_DLL_PATH:=TPath.GetLibraryPath+'/';
        {$ENDIF}
b)
Delphi-Quellcode:
function MySafeLoadLibrary(ModuleName:string):HMODULE;
   var
  Error: string;

  {$IF Defined(ANDROID)}
  function ShouldNativeLibrariesBeExtracted: Boolean;
  begin
    if TOSVersion.Check(6, 0) then
      Result := (TAndroidHelper.Context.getApplicationInfo.flags and TJApplicationInfo.JavaClass.FLAG_EXTRACT_NATIVE_LIBS) <> 0
    else
      Result := True;
  end;
  {$ENDIF}
begin
  {$IF Defined(ANDROID)}
  if ShouldNativeLibrariesBeExtracted then
    ModuleName := TPath.Combine(TPath.GetLibraryPath, ModuleName);
  {$ENDIF}

  Result := LoadLibrary(PChar(ModuleName));

  if Result = 0 then
  begin
    Error := string.Format('Could not load ''%s'' due to: %s', [ModuleName, string(UTF8String(dlerror))]);
   log.d('mySafeLoadLibrary: '+error);
    ShowMessage(Error);
    raise Exception.Create(Error);
  end;
end;
Best regards, Philipp

TurboMagic 12. Mär 2020 14:41

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

einen kleinen Verbesserungsvorschlag zu der geposteten Lösung:
gib doch den Formatstring Platzhaltern Indizes.

%0:s und %1:s, dann ist das Übersetzen flexibler!

Grüße
TurboMagic


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:02 Uhr.
Seite 3 von 3     123   

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