Création et déploiement d'un fichier classes.dex manuellement
Remonter à Utilisation d'un ensemble personnalisé de bibliothèques Java dans vos apps Android RAD Studio
La création et le déploiement d'un fichier classes.dex
manuellement ne vous permet pas seulement d'ajouter des bibliothèques à votre application, mais également de modifier les bibliothèques Java RAD Studio intégrées pour Android, ou de retirer celles devenues inutiles. Si vous devez ajouter une bibliothèque Java personnalisée à votre application pour Android, voir Ajout d'une bibliothèque Java à votre application en utilisant le Gestionnaire de projets.
Sommaire
Création d'un fichier classes.dex
Le fichier classes.dex
est un fichier exécutable Dalvik que toutes les applications Android doivent avoir. Ce fichier contient les bibliothèques Java utilisées par l'application.
Lorsque vous déployez une application pour Android, RAD Studio inclut un fichier classes.dex
qui contient les bibliothèques Java intégrées par RAD Studio. Pour utiliser vos propres bibliothèques Java dans vos applications RAD Studio, vous devez créer un fichier classes.dex
qui inclut les bibliothèques Java intégrées par RAD Studio dont votre application a besoin et vos propres bibliothèques Java.
Détermination des fichiers JAR à inclure dans votre fichier classes.dex
Pour créer votre fichier classes.dex
, vous avez besoin des fichiers JAR de toutes les bibliothèques Java utilisées par vos applications, ainsi que des fichiers JAR des bibliothèques dont elles dépendent.
Cela affecte également les bibliothèques Java RAD Studio intégrées. Par exemple, si vos applications ont besoin de la bibliothèque Java Google Play Services, votre fichier classes.dex
doit également contenir le fichier JAR de la bibliothèque Java Google Play Application Licensing, car Google Play Application Licensing est une dépendance de Google Play Services. Si Google Play Application Licensing avait ses propres dépendances, vous devriez inclure celles-ci également.
Le tableau suivant liste les dépendances des bibliothèques Java intégrées par RAD Studio :
Bibliothèque | Fichier JAR | Dépendances | Requise par RAD Studio |
---|---|---|---|
|
Oui | ||
|
|
Oui | |
|
Non | ||
|
Non | ||
|
Non | ||
|
|
Non | |
|
|
Non | |
|
|
Non | |
|
|
Non |
Vous pouvez trouver ces fichiers JAR dans les dossiers suivants au sein du dossier d'installation de RAD Studio (C:\Program Files (x86)\Embarcadero\Studio\22.0
) :
lib\android\debug
lib\android\release
Vous pouvez inclure toutes vos bibliothèques Java intégrées RAD Studio dans votre fichier classes.dex
ou déterminer, sur la base des informations fournies dans le tableau ci-dessus, les bibliothèques Java intégrées RAD Studio dont vos applications ont besoin.
- Avertissement : Vous devez toujours inclure les bibliothèques Java qui sont requises par RAD Studio dans votre fichier
classes.dex
personnalisé.
Génération d'un fichier classes.dex
à partir de fichiers JAR
Une fois que vous avez déterminé les fichiers JAR dont vos applications Android ont besoin, vous pouvez créer un fichier classes.dex
à partir d'eux.
Pour créer un fichier classes.dex
, vous devez utiliser l'outil de ligne de commande dx
. Vous pouvez le trouver à l'emplacement C:\Utilisateurs\Public\Documents\Embarcadero\Studio\22.0\CatalogRepository\adt-bundle-windows-x86-20131030
.
Exécutez dx
avec le paramètre --dex
, le paramètre --output
avec le chemin de sortie du fichier classes.dex
comme argument, et une liste des chemins d'accès aux fichiers JAR que vous souhaitez inclure dans le fichier classes.dex
généré (en utilisant l'espace comme séparateur). Par exemple :
dx --dex --output="classes.dex" "C:\Path\To\Library1.jar" "C:\Path\To\Library2.jar"
- Remarque : Vous devez créez une version débogage et une version release de votre fichier
classes.dex
. Les fonctions de débogage de RAD Studio sont disponibles uniquement si le fichierclasses.dex
déployé contient les versions débogage des bibliothèques Java intégrées RAD Studio incluses.
Déploiement du fichier classes.dex
- Avertissement : Suivez attentivement ces étapes. Les applications Android doivent toujours inclure un fichier
classes.dex
valide. Pour plus d'informations, voir Fichier classes.dex non valide ou manquant ci-dessous.
Pour configurer votre application Android en vue de la déployer avec votre fichier classes.dex
personnalisé :
- Sélectionnez Projet > Déploiement pour ouvrir le Gestionnaire de déploiement.
- Désélectionnez la case à cocher du fichier
classes.dex
par défaut. - Cliquez sur le bouton et ajoutez votre fichier
classes.dex
personnalisé à la liste des fichiers de déploiement. - Remplacez le chemin distant de votre nouvelle entrée par
classes\
. - Remplacez les plates-formes de votre nouvelle entrée par Android uniquement.
Dépannage
Fichier classes.dex
non valide ou manquant
Ce message d'erreur s'affiche lorsque vous exécutez une application sur un périphérique Android en utilisant RAD Studio et que votre application ne comporte pas de fichier classes.dex
valide :
Unable to create process: Unable to install '<APK file>'. Failure [INSTALL_FAILED_DEXOPT]
Un package d'application Android (fichier APK) doit toujours contenir un fichier classes.dex
valide. Ainsi :
- Il doit y avoir un fichier
classes.dex
dans le fichier APK. - Le fichier
classes.dex
doit être placé dansclasses/classes.dex
au sein du fichier APK. - Le fichier
classes.dex
doit être un exécutable Dalvik valide.
Lorsque vous utilisez un fichier classes.dex
personnalisé, vous devez être attentif. Après avoir désélectionné le fichier classes.dex
par défaut sur le Gestionnaire de déploiement et avoir ajouté une entrée pour votre fichier classes.dex
personnalisé :
- Vérifiez que l'entrée de votre fichier personnalisé est sélectionnée.
- Vérifiez que le chemin distant de votre nouvelle entrée est
classes\
. - Vérifiez que votre nouvelle entrée est votre fichier
classes.dex
, et non un fichier différent qui peut ne pas être un exécutable Dalvik valide.
Si votre application Android n'est pas configurée pour être déployée avec un fichier classes.dex
valide, et que vous exécutez votre application sur un périphérique Android à partir de RAD Studio ou que vous installez sur votre périphérique un fichier APK de votre application généré avec RAD Studio, l'installation échouera. Toutefois, il restera des données sur votre périphérique Android, qui vous empêcheront d'installer des applications avec le même nom de package que votre application (voir Informations de version Android).
Après avoir tenté d'installer un fichier APK sans fichier classes.dex
valide, la seule solution connue consiste à rétablir les paramètres d'origine (EN) de votre périphérique Android.
- Avertissement : Le rétablissement des paramètres d'origine supprime toutes les données de votre périphérique (données personnelles, paramètres personnalisés et autres). Demandez-vous si la correction du problème vaut vraiment la peine de perdre toutes vos données. Si vous décidez de poursuivre, n'oubliez pas de sauvegarder vos données avant de rétablir les paramètres d'origine.