Ausführen von Android-Anwendungen auf einem Android-Gerät

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Mobile Android-Anwendungsentwicklung


Nachdem Sie Ihr Entwicklungssystem für die Android-Entwicklung vorbereitet, das USB-Debugging auf Ihrem Gerät aktiviert und Ihr System für die Erkennung des Android-Geräts konfiguriert haben, können Sie eine geräteübergreifende Anwendung auf einem angeschlossenen Android-Gerät ausführen.

  1. Schließen Sie Ihr Android-Gerät über das USB-Kabel des Geräts an Ihr Entwicklungssystem an.
    Ihr Android-Gerät sollte im Geräte-Manager (auf den Sie über die Systemsteuerung zugreifen) unter Tragbare Geräte aufgeführt werden.
    Weitere Informationen finden Sie unter Konfigurieren des Systems für die Erkennung von Android-Geräten.
  2. Wählen Sie in RAD Studio entweder Datei > Neu > Geräteübergreifende Anwendung - Delphi oder Datei > Neu > Geräteübergreifende Anwendung - C++Builder aus.
  3. Aktivieren Sie in der Projektverwaltung die Zielplattform Android (durch Doppelklicken).
  4. Aktivieren Sie das Android SDK für Ihr Gerät:
    1. Klicken Sie in der Projektverwaltung mit der rechten Maustaste auf den Knoten "Android", und wählen Sie Eigenschaften aus.
    2. Klicken Sie im Dialogfeld Plattformeigenschaften auf den Abwärtspfeil im Feld SDK (Software Development Kit), und wählen Sie eine der folgenden Optionen:
      • Die von Ihnen installierte Android SDK-Version, wenn sie angezeigt wird
      • Neue hinzufügen
        1. Klicken Sie im Dialogfeld Neues SDK hinzufügen auf den Abwärtspfeil im Feld SDK-Version auswählen, und wählen Sie das installierte Android SDK aus.
        2. Füllen Sie die Felder im Experten Neues Android SDK erstellen aus. Die meisten Felder werden automatisch vom Experten ausgefüllt.
  5. Aktivieren Sie das Android-Gerät als Zielplattform: Öffnen Sie in der Projektverwaltung in der Zielplattform Android den Knoten Ziel, und doppelklicken Sie auf Ihr Android-Gerät.
    Wenn Ihr Android-Gerät richtig installiert wurde, dann wird die SDK-Versionsnummer neben dem Gerät des Android-Ziels angezeigt, z. B.:
    Android - Android SDK 22.0.1
    Tipps: Wenn Ihr Gerät nicht angezeigt wird, führen Sie die folgenden Schritte aus:
    1. Klicken Sie in der IDE mit der rechten Maustaste auf den Zielknoten, und wählen Sie Aktualisieren.
    2. Öffnen Sie in der Systemsteuerung den Geräte-Manager:
      1. Überprüfen Sie, ob Ihr Android-Gerät aufgeführt wird. In der Regel sollte es unter Tragbare Geräte angezeigt werden.
      2. Wenn Ihr Gerät nicht aufgeführt wird, klicken Sie mit der rechten Maustaste auf irgendeinen Knoten, und wählen Sie Nach geänderter Hardware suchen.
      3. Verwenden Sie bei Bedarf den Android SDK Manager, um den Gerätetreiber für Ihr Android-Gerät zu deinstallieren und dann erneut zu installieren. Wählen Sie Start | Alle Programme | Embarcadero RAD Studio Athens | Android-Tools.

    Die folgende Abbildung zeigt einen gefüllten Android-Zielknoten mit dem ausgewähltem Gerät "Nexus 10":
    AndroidPopulatedNode.png
  6. Wenn Sie im Knoten Konfiguration der Projektverwaltung die Plattformkonfiguration Anwendungs-Store ausgewählt haben, müssen Sie auf der Seite Bereitstellung ein Signierungszertifikat für die Plattformkonfiguration Anwendungs-Store konfiguriert haben. Für die Plattformkonfiguration Entwicklung ist kein Signierungszertifikat erforderlich.
  7. Führen Sie Ihre Anwendung aus:
    • Führen Sie sie mit Debugger aus (Start > Start oder F9)
    • Führen Sie sie ohne Debugger aus (Start > Ohne Debugger ausführen oder Umschalt+Strg+F9).

RAD Studio erzeugt Ihre Anwendung für Android und führt sie auf dem ausgewählten Android-Gerät aus. Wenn der Android-Gerätebildschirm gesperrt ist, entsperren Sie ihn, um auf Ihre Anwendung zuzugreifen.

Die zur Laufzeit ausgewählte Ansicht hängt vom Zielgerät ab

Beim Entwickeln von Android-Apps können Sie im Formular-Designer Ansichten angeben, wenn Sie für verschiedene Geräte entwickeln.

Wenn Ihre Anwendung auf einem Android-Gerät ausgeführt wird, fragt die Laufzeit das Gerät ab, um die Größe und Punktdichte des Displays zu ermitteln. Dann sucht die Laufzeit in den verfügbaren Ansichten in Ihrer Anwendung nach der Ansicht, die am besten passt. Diese Ansicht wird ausgewählt und deren Größe angepasst, damit sie exakt mit der vom Gerät ermittelten Größe übereinstimmt.

Informationen zu dem beim Auswählen von Ansichten verwendeten Algorithmus und zum Größenbereich für Android-Ansichten finden Sie unter Verwenden von FireMonkey-Ansichten.

Einzelheiten zu FireMonkey-Ansichten finden Sie unter:

Ausführen der Anwendung mit bereinigten Daten- und Zwischenspeicherordnern

Beim Ausführen einer Anwendung auf einem Android-Gerät installiert RAD Studio Ihre Anwendung auf dem Gerät mit dem Package-Namen, den Sie auf den Versionsinformationen-Optionsseiten festgelegt haben, um Ihre Anwendung eindeutig zu kennzeichnen. Der Package-Name lautet standardmäßig com.embarcadero.$(ModuleName), wobei $(ModuleName) der Name Ihres Projekts, wie z. B. "Project1", ist.

Wenn Sie Ihre Anwendung auf einem Gerät ausführen, das bereits eine früher installierte Anwendung mit demselben Package-Namen enthält, wird mit dem Befehl Start Ihre Anwendung neu installiert, aber es wird nur die ausführbare Datei aktualisiert; die Daten- und Zwischenspeicherordner Ihrer Anwendung werden nicht aktualisiert. Diese Beibehaltung der Daten- und Zwischenspeicherordner kann bei der Entwicklung ein Problem sein, wenn Sie aufeinanderfolgende Iterationen Ihrer App debuggen/bereitstellen müssen.

Sie können RAD Studio so konfigurieren, dass mit den Aktionen Ohne Debugger ausführen und Start alle zuvor installierten Versionen Ihrer Anwendung, einschließlich der Daten- und Zwischenspeicherordner, vollständig deinstalliert werden. Führen Sie dazu vor der Installation der neueren Version folgende Schritte aus:

  1. Wählen Sie Start > Parameter.
  2. Geben Sie in das Feld Parameter "-cleaninstall" ein:
    RunParametersCleanInstall.png
  3. Klicken Sie zum Speichern der Änderungen auf OK.

Fehlerbehebung

<APK-Datei> kann nicht installiert werden. Fehler [INSTALL_FAILED_CONTAINER_ERROR]

Wählen Sie Projekt > Optionen > Versionsinformationen, und ändern Sie den Wert von "installLocation" in auto.

Weitere Informationen und alternative Lösungen finden Sie unter What does this mean: Failure [INSTALL_FAILED_CONTAINER_ERROR (EN)]?.

Blockade beim "Deinstallieren" im Dialogfeld "Ausführen"

Sie müssen höchstwahrscheinlich das USB-Debugging ausdrücklich für Ihren Computer aktivieren, wenn beim Ausführen von Android 4.2.2 oder später und beim Klicken auf Start oder Ohne Debugger ausführen RAD Studio bei diesem Bildschirm hängen bleibt:

StuckAtUninstallingOnTheRunDialogBox.png

Außerdem müssen Sie wahrscheinlich die allgemeine USB-Debugging-Einstellung auf Ihrem Gerät aktivieren. Wenn dies zutrifft, sollte auf Ihrem Gerät ein Dialogfeld angezeigt werden, in dem Sie das USB-Debugging zulassen müssen:

AndroidEnableUSBDebuggingDialog.png

Klicken Sie auf OK, um das USB-Debugging zuzulassen.

Falls Sie versehentlich auf Cancel geklickt haben, trennen Sie Ihr Gerät vom PC, und schließen Sie es wieder an, damit das Dialogfeld auf Ihrem Gerät erneut angezeigt wird.

Workaround für Android 4.0/Kindle Fire-Meldung: "Anwendung unterstützt dieses Gerät nicht"

Wenn Sie versuchen, eine Android-App auf einem Gerät mit Android 4.0.x (einschließlich einiger Geräte mit Amazon Kindle Fire) auszuführen, wird möglicherweise die folgende Meldung angezeigt:

 Application does not support this device

Führen Sie die folgenden Schritte aus, um dieses Problem zu beheben:

  1. Öffnen Sie in der IDE den Bereitstellungs-Manager (Projekt > Bereitstellung), und suchen Sie den folgenden Eintrag:
    Lokaler Name: libnative-activity.so
    Remote-Pfad: library\lib\armeabi\
  2. Deaktivieren Sie den Eintrag, um die Bereitstellung dieser Datei zu verhindern.

Android-Konsole-App muss beim Start eine Pause bereitstellen

Wenn Sie eine Android-Konsolen-App ausführen, könnte die App bereits vollständig ausgeführt sein, bevor der Debugger gestartet wurde. Wir empfehlen Ihnen daher, einen "sleep"-Befehl am Anfang Ihres Codes einzufügen, um dieses Problem zu vermeiden. Zum Beispiel:

sleep(3000)

Die für Ihre App geeignete "sleep"-Dauer (angegeben in Millisekunden) hängt von der Gesamtleistung Ihres Zielgeräts ab; d. h., für langsame Hardware wird eine längere Wartezeit benötigt.

Android-Apps, deren Dateiname Unicode enthält, können nicht bereitgestellt werden

Eine Android-App startet eventuell nicht auf dem Gerät, wenn die Bereitstellung eine Datei mit Unicode-Zeichen enthält. Wenn Sie beispielsweise einer Android-Bereitstellung eine Datei mit dem Namen "test試験.txt" hinzufügen, wird nur ein schwarzer Bildschirm angezeigt und die App geschlossen. Der Grund dafür ist, dass eine Datei mit Unicode-Zeichen im Dateinamen ignoriert wird und nicht zur Android-APK-Datei hinzugefügt wird. Die App schlägt aufgrund der unvollständigen Bereitstellung fehl.

Manuelles Deinstallieren einer Android-Anwendung

So deinstallieren Sie eine Android-Anwendung manuell:

  1. Öffnen Sie auf Ihrem Gerät das Menü "Einstellungen": Einstellungen > Apps- oder Anwendungs-Manager (kann abhängig von Gerät variieren).
  2. Tippen Sie auf die Anwendung, die Sie deinstallieren möchten.
  3. Tippen Sie auf Deinstallieren.

Debugger wird nicht gestartet oder Haltepunkte werden ignoriert

In bestimmten Situationen könnte es vorkommen, dass der Debugger nicht startet oder Haltepunkte ignoriert werden. Dies kann daran liegen, dass der Wert des Parameters installLocation in der Anwendungsmanifest-Datei nicht auf preferExternal gesetzt ist. Sie können diesen Parameter in der IDE unter Projekt > Optionen > Versionsinformationen ändern. Setzen Sie den Parameter auf auto, und stellen Sie sicher, dass genügend freier Speicherplatz im internen Speicher vorhanden ist (andernfalls wird die Anwendung im externen Speicher installiert).

Beim Debuggen wird nicht festgestellt, dass eine App beendet wurde

Es kann der Eindruck entstehen, dass der Debugger nicht feststellen kann, dass Ihre Anwendung beendet wurde, aber das ist normal. Jede Android-Anwendung wird in einem eigenen Linux-Prozess ausgeführt, der so lange weiterausgeführt wird, bis er nicht mehr benötigt wird und das System dessen Arbeitsspeicher wieder beansprucht (weitere Informationen finden Sie unter https://developer.android.com/guide/topics/processes/process-lifecycle.html (EN)). Da der Anwendungsprozess weiterhin ausgeführt wird, kann der Eindruck entstehen, dass der Debugger hängt, obwohl der Debugger tatsächlich das Debuggen des laufenden Prozesses fortsetzt. Klicken Sie auf Beenden, um diesen Prozess im Debugger zu beenden.

Siehe auch