Manuelles Erstellen und Bereitstellen einer classes.dex-Datei
Nach oben zu Verwenden benutzerdefinierter Java-Bibliotheken in RAD Studio-Android-Apps
Beim manuellen Erstellen und Bereitstellen einer classes.dex
-Datei können Sie Ihrer Anwendung nicht nur Bibliotheken hinzufügen, sondern die integrierten RAD Studio-Java-Bibliotheken für Android auch ändern oder nicht benötigte entfernen. Wenn Sie Ihrer Anwendung für Android nur eine benutzerdefinierte Java-Bibliothek hinzufügen möchten, finden Sie Informationen dazu unter Hinzufügen von Java-Bibliotheken zu Ihren Anwendungen in der Projektverwaltung.
Inhaltsverzeichnis
Erstellen einer classes.dex
-Datei
Die Datei classes.dex
ist eine ausführbare Dalvik-Datei (EN), über die alle Android-Anwendungen verfügen müssen. Diese Datei enthält die Java-Bibliotheken, die die Anwendung verwendet.
Wenn Sie eine Anwendung für Android bereitstellen, bezieht RAD Studio eine classes.dex
-Datei ein, die die in RAD Studio integrierten Java-Bibliotheken enthält. Für die Verwendung eigener Java-Bibliotheken in Ihren RAD Studio-Anwendungen müssen Sie eine neue classes.dex
-Datei erstellen, die die von Ihrer Anwendung benötigten, in RAD Studio integrierten Java-Bibliotheken und Ihre eigenen Java-Bibliotheken enthält.
Ermitteln der JAR-Dateien, die in Ihre classes.dex
-Datei einbezogen werden müssen
Zum Erstellen Ihrer neuen classes.dex
-Datei benötigen Sie die JAR-Dateien jeder Java-Bibliothek, die Ihre Anwendungen verwendet, sowie die JAR-Dateien der Bibliotheken, von denen diese Bibliotheken abhängen.
Dies betrifft auch die in RAD Studio integrierten Java-Bibliotheken. Wenn Ihre Anwendungen beispielsweise die Java-Bibliothek "Google Play Services" benötigen, muss Ihre classes.dex
-Datei auch die JAR-Datei der Java-Bibliothek "Google Play Application Licensing" enthalten, weil Google Play Services von Google Play Application Licensing abhängen. Wenn Google Play Application Licensing eigene Abhängigkeiten hätte, müssten Sie auch diese einbeziehen.
In der folgenden Tabelle finden Sie die Abhängigkeiten der in RAD Studio integrierten Java-Bibliotheken:
Bibliothek | JAR-Datei | Abhängigkeiten | Erforderlich für RAD Studio |
---|---|---|---|
|
Ja | ||
|
|
Ja | |
|
Nein | ||
|
Nein | ||
|
Nein | ||
|
|
Nein | |
|
|
Nein | |
|
|
Nein | |
|
|
Nein |
Diese JAR-Dateien befinden sich in den folgenden Ordnern im RAD Studio-Installationsordner (C:\Program Files (x86)\Embarcadero\Studio\20.0
):
lib\android\debug
lib\android\release
Sie können entweder alle in RAD Studio integrierten Java-Bibliotheken in Ihre classes.dex
-Datei aufnehmen oder anhand der Informationen in der obigen Tabelle ermitteln, welche in RAD Studio integrierten Java-Bibliotheken Ihre Anwendungen benötigen.
- Warnung: Sie müssen die Java-Bibliotheken, die für RAD Studio erforderlich sind, immer in Ihre eigene
classes.dex
-Datei aufnehmen.
Generieren einer classes.dex
-Datei aus JAR-Dateien
Wenn Sie die JAR-Dateien ermittelt haben, die Ihre Android-Anwendungen benötigen, können Sie daraus eine classes.dex
-Datei erstellen.
Zum Erstellen einer classes.dex
-Datei müssen Sie das Befehlszeilen-Tool dx
verwenden. Dieses Tool befindet sich unter C:\Users\Public\Documents\Embarcadero\Studio\20.0\CatalogRepository\AndroidSDK-<Version>
.
Führen Sie dx
mit dem Parameter --dex
, dem Parameter --output
mit dem Ausgabepfad der classes.dex
-Datei als Argument und einer durch Leerzeichen getrennten Liste der Pfade der JAR-Dateien aus, die Sie in die generierte classes.dex
-Datei einbeziehen möchten. Zum Beispiel:
dx --dex --output="classes.dex" "C:\Path\To\Library1.jar" "C:\Path\To\Library2.jar"
- Hinweis: Sie sollten eine Debug- und eine Release-Version Ihrer
classes.dex
-Datei erstellen. Die Debug-Funktionen von RAD Studio stehen nur zur Verfügung, wenn die bereitgestellteclasses.dex
-Datei die Debug-Versionen der einbezogenen, in RAD Studio integrierten Java-Bibliotheken enthält.
Weitergeben der classes.dex
-Datei
- Warnung: Führen Sie die folgende Schritte sorgfältig aus. Android-Anwendungen müssen immer eine gültige
classes.dex
-Datei enthalten. Weitere Informationen finden Sie unter Ungültige oder fehlendeclasses.dex
-Datei weiter unten.
So konfigurieren Sie Ihre Android-Anwendung, damit sie mit Ihrer eigenen classes.dex
-Datei weitergegeben wird:
- Wählen Sie Projekt > Bereitstellung, um den Bereitstellungs-Manager zu öffnen.
- Deaktivieren Sie das Kontrollkästchen der
classes.dex
-Standarddatei. - Klicken Sie auf die Schaltfläche , und fügen Sie Ihre eigene
classes.dex
-Datei der Liste der Bereitstellungsdateien hinzu. - Ändern Sie den Remote-Pfad Ihres neuen Eintrags in
classes\
. - Ändern Sie die Plattformen Ihres neuen Eintrags in Android.
Fehlerbehebung
Ungültige oder fehlende classes.dex
-Datei
Diese Fehlermeldung wird angezeigt, wenn Sie Ihre Anwendung ohne eine gültige classes.dex
-Datei auf einem Android-Gerät mit RAD Studio ausführen:
Unable to create process: Unable to install '<APK file>'. Failure [INSTALL_FAILED_DEXOPT]
Ein Android-Anwendungspaket (APK-Datei) muss immer eine gültige classes.dex
-Datei enthalten. Das heißt:
- Es muss eine
classes.dex
-Datei in der APK-Datei enthalten sein. - Die
classes.dex
-Datei muss sich in der APK-Datei unterclasses/classes.dex
befinden. - Die
classes.dex
muss eine gültige ausführbare Dalvik-Datei (EN) sein.
Seien Sie bei der Verwendung von eigenen classes.dex
-Dateien vorsichtig. Nachdem Sie die classes.dex
-Standarddatei im Bereitstellungs-Manager deaktiviert und einen Eintrag für Ihre eigene classes.dex
-Datei hinzugefügt haben, sollten Sie sicherstellen, dass:
- Der Eintrag Ihrer eigenen Datei aktiviert ist.
- Der Remote-Pfad Ihres neuen Eintrags
classes\
lautet. - Ihr neuer Eintrag die
classes.dex
-Datei ist und nicht eine andere Datei, die möglicherweise keine gültige ausführbare Dalvik-Datei (EN) ist.
Wenn Ihre Android-Anwendung nicht für die Weitergabe mit einer gültigen classes.dex
-Datei konfiguriert ist und Sie Ihre Anwendung auf einem Android-Gerät aus RAD Studio ausführen oder auf einem Gerät eine mit RAD Studio generierte APK-Datei Ihrer Anwendung installieren, schlägt die Installation fehl, aber es bleiben Daten auf Ihrem Android-Gerät zurück, die eine Installation von Anwendungen mit demselben Paketnamen wie Ihre Anwendung verhindern (siehe Android-Versionsinformationen).
Nach einem Versuch, eine APK-Datei ohne gültige classes.dex
-Datei zu installieren, ist die einzige, bekannte Lösung das Zurücksetzen auf die Werkseinstellungen (EN) Ihres Android-Geräts.
- Warnung: Durch das Zurücksetzen auf die Werkseinstellungen werden alle Daten von Ihrem Gerät entfernt (persönliche Daten, Benutzereinstellungen und mehr). Überlegen Sie genau, ob das Beheben des Problems den Verlust Ihrer Daten wert ist. Wenn Sie Ihr Gerät trotzdem auf die Werkseinstellungen zurücksetzen möchten, sollten Sie vorher Ihre Daten sichern.