Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Cross-Platform-Entwicklung (https://www.delphipraxis.net/91-cross-platform-entwicklung/)
-   -   Android: PAclient Exit Code 1 (https://www.delphipraxis.net/181750-android-paclient-exit-code-1-a.html)

greenmile 6. Sep 2014 22:31

Android: PAclient Exit Code 1
 
Hallo,

jetzt stolpere ich endlich mal (wieder) über den Exit Code 1. Ich wollte ein XE6 Projekt mit einigen kleineren Änderungen unter XE7 auf einem Android (S5) Gerät testen und siehe da ... Exit Code 1. DCU's habe ich schon gelöscht, das Gerät läuft unter XE6 einwandfrei, Debug Modus etc. sind also aktiviert. Vorher wird folgender Befehl ausgeführt:

Code:
  c:\program files (x86)\embarcadero\studio\15.0\bin\paclient.exe -u8 
  --aaptpackage="C:\Users\Public\Documents\Embarcadero\Studio\15.0\PlatformSDKs\adt-bundle-windows-x86-20131030\sdk\build-tools\android-4.4\Aapt.exe,.\Android\Release\xxx\library,.\Android\Release\xxx\classes,.\Android\Release\xxx\res,.\Android\Release\xxx\assets,.\Android\Release\xxx\AndroidManifest.xml,C:\Users\Public\Documents\Embarcadero\Studio\15.0\PlatformSDKs\adt-bundle-windows-x86-20131030\sdk\platforms\android-19\android.jar,.\Android\Release\xxx\bin\xxx-unsigned.apk"
Es kommt in folge also nicht zu einer Signierung. Führe ich den Befehl in einer CMD aus, so kommt der Fehler

Code:
xxx\res\drawable\splash_image_def.xml:2: error: Error: No resource found that matches the given name (at 'src' with value '@drawable/splash_image').
Die Lösung ist ganz einfach: In den Projekt-Optionen war das "Startbild". Das war aktiviert, aber nicht definiert. Aktiviert habe ich es nie (in XE6 gibt es die Option noch nicht).

===

Als nächstes kam der PA Client 8. Der kam, weil es im Verzeichnis "c:\Users\Public\Documents\Embarcadero\Studio\15.0 \PlatformSDKs\adt-bundle-windows-x86-20131030\sdk\tools\" keine "ZIPAlign.exe" gab.

===

Zu guter letzt habe ich mindestens 1 Stunde mit ShowMessage und MessageDlg verbracht. Sorry EMBT, aber irgendwie lauft ihr nicht ganz rund. Es mag ja sein, dass die unter Android nicht blockierend sein dürfen, aber es lief gut. Hier ein Workaround für alle Pfuscher:

Code:
procedure TfrmMain.ShowMessage(const Msg: string);
begin
  MsgDlgResult := -1;
  FMX.Dialogs.MessageDlg(Msg, TMsgDlgType.mtInformation, [TMsgDlgBtn.mbOk], 0,
     procedure(const AResult: TModalResult)
     begin
       MsgDlgResult:= AResult;
     end
  );
  while MsgDlgResult<0 do Delay(10);
end;

function TfrmMain.MessageDlg(const Msg: string; DlgType: TMsgDlgType;
  Buttons: TMsgDlgButtons; HelpCtx: Longint): Integer;
begin
  MsgDlgResult := -1;
  FMX.Dialogs.MessageDlg(Msg, DlgType, Buttons, HelpCtx,
            procedure(const AResult: TModalResult)
            begin
              MsgDlgResult:= AResult;
            end
          );
  while MsgDlgResult<0 do Delay(10);
  Result := MsgDlgResult;
end;
===

Die gute Nachricht (und allen diesbezüglichen Diskussionen hier zum Trotze) werden Android-App's jetzt nach Aufruf von "SharedActivity.Finish;" korrekt beendet und lassen sich auch wieder problemlos starten.


Falls also noch andere über diese Fehler stolpern ...

roga 20. Sep 2014 13:57

AW: Android: PAclient Exit Code 1
 
...stundenlanges Suchen - und hier die Lösung gefunden: verdammtes Startbild! Deaktiviert und das apk wurde ohne Fehler erstellt.

DANKE greenmile :thumb:

Mavarik 20. Sep 2014 14:13

AW: Android: PAclient Exit Code 1
 
Zitat:

Zitat von greenmile (Beitrag 1271367)
Hallo,

jetzt stolpere ich endlich mal (wieder) über den Exit Code 1. Ich wollte ein XE6 Projekt mit einigen kleineren Änderungen unter XE7 auf einem Android (S5) Gerät testen und siehe da ... Exit Code 1. DCU's habe ich schon gelöscht, das Gerät läuft unter XE6 einwandfrei, Debug Modus etc. sind also aktiviert. Vorher wird folgender Befehl ausgeführt:

Shitt, Sorry hätte ich natürlich auch mal posten können. :stupid: Bin natürlich in die gleiche Falle getappt. (Eine von vielen, bei der Übernahme von XE6 Projekten nach XE7)
Habe mich trotzdem dazu entschlossen, das Projekt unter XE7 neu an zu legen und dann alle Files hinzu zu fügen, da ich unter Bereitstellung nicht um das autocreate aller Files rum gekommen bin.

Außerdem hatte ich dadurch noch "alte" XE6 Pfade drin.

Umstellung von XE6 auf XE7 hat mich bisher 2 Tage gekostet.
Siehe auch mein anderen Thread zu XE7

Mavarik


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:11 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