135 votes

Comment changer le nom du paquet d'une application Android

Mon keystore est corrompu, donc l'Android Market me demande de renommer l'application et de la soumettre à nouveau. Cependant, lorsque je modifie les noms des paquets dans Manifest et dans l'ensemble des fichiers, je reçois des tonnes d'erreurs.

Comment changer le nom de l'application ?

Merci !

3 votes

Heureusement, ils ont ajouté un "bouton magique de changement de nom de paquet" depuis 2010 - voir la réponse de @Marc Bernstein -. stackoverflow.com/a/4025633/383414

0 votes

Merci Richard Le ...

3 votes

Duplicata possible de Android Studio Renommer le paquet

302voto

Marc Bernstein Points 6914

Il existe un moyen de modifier facilement le nom du paquet dans Eclipse. Faites un clic droit sur votre projet, faites défiler jusqu'à Android Tools, puis cliquez sur Rename Application Package.

2 votes

Je viens d'essayer celui d'Eldar et ça a marché - mais je suis sûr que ça va marcher aussi.

4 votes

C'est la bonne réponse, mais l'ADT actuel est cassé, et il casse chaque référence à votre classe R. Vous devez donc cliquer sur chaque fichier individuel, faire "ctrl-shift-o" (ou cmd-shift-o sur Mac), et sélectionner votre nouveau paquet nommé R (NE PAS sélectionner Android.R ! les choses se casseraient horriblement), puis cliquer sur enregistrer. ... et répétez pour CHAQUE fichier individuel :(

0 votes

@Adam juste pour nous rendre la vie plus facile, cliquez sur le projet et utilisez ctrl+shift+o, cela mettra à jour la référence importée dans TOUTES les classes/fichiers :D

101voto

eldarerathis Points 14545

Si vous utilisez Eclipse, vous pourriez essayer de ces instructions depuis le site des développeurs d'Android. Ils sont spécifiques à l'échantillon GestureBuilder mais devraient s'appliquer à n'importe quelle application d'après ce que je peux dire :

Voici comment vous pouvez faire cela dans Eclipse :

  1. Cliquez avec le bouton droit de la souris sur le nom du paquet ( src/com.android.gesture.builder ).
  2. Sélectionnez Refactor > Rename et changez le nom, par exemple en com.android.gestureNEW.builder .
  3. Ouvrez le fichier manifeste. Dans le champ <manifest> modifiez le nom du paquet en com.android.gestureNEW.builder .
  4. Ouvrez chacun des deux fichiers Activity et faites Ctrl-Shift-O pour ajouter les paquets d'importation manquants, puis enregistrez chaque fichier. fichier. Exécutez l'application GestureBuilder sur l'émulateur.

Assurez-vous également d'avoir pensé à renommer le paquet lui-même ainsi que les références à celui-ci dans les fichiers. Dans Eclipse, vous pouvez voir le nom du paquet dans la fenêtre de l'explorateur de fichiers/la vue arborescente sur le côté gauche. D'après mon expérience, Eclipse peut parfois être un peu pointilleux et peu fiable à ce sujet (laissant derrière lui des références errantes à l'ancien nom du paquet, par exemple).

0 votes

C'est probablement la meilleure façon de procéder, il n'y a pas de bouton magique pour changer le nom du paquet.

13 votes

Oui, c'est le cas. Voir la réponse de @Marc Bernstein.

0 votes

Je ne pense pas que l'auteur de la question initiale ait eu besoin de changer les noms des paquets Java également. La réponse de Marc devrait être la réponse acceptée.

51voto

AZ_ Points 7127

Voici comment vous pourriez faire cela dans Eclipse :

> Right-click on the package name (src/com.android.gesture.builder).
> Select Refactor > Rename and change the name, for example to
> com.android.gestureNEW.builder. Open the manifest file. Inside the
> <manifest> tag, change the package name to
> com.android.gestureNEW.builder. Open each of the two Activity files
> and do Ctrl-Shift-O to add missing import packages, then save each
> file. Run the GestureBuilder application on the emulator.

Lien vers le poste

Mise à jour méthode très simple cliquez avec le bouton droit de la souris sur votre projet... enter image description here

2 votes

Une façon plutôt géniale de faire ça !

2 votes

La solution la plus simple. Cela aurait dû être accepté ;)

8voto

clusterflux Points 98

Sans éclipse :

  1. Modifier le nom du paquet et les noms des activités dans AndroidManifext.xml et partout où il apparaît dans les fichiers .xml (noms de vues personnalisées, etc.)

  2. Mise à jour de la déclaration d'importation de paquet dans tous les fichiers sources

  3. Renommez tous les dossiers pour qu'ils correspondent au nom du paquet. Emplacement des dossiers :
    a. bin/classes
    b. gen
    c. src

  4. Mettez à jour le nom du projet dans le fichier build.xml (sinon le nom de votre apk ne changera pas).

  5. Supprimez tous les fichiers .class dans bin/classes/com/example/myapp/ (si vous sautez cette étape, les fichiers ne seront pas réécrits pendant la construction et dex aura beaucoup de mal à traiter les erreurs "class name does not match path".

  6. Supprimez gen/com/example/myapp/BuildConfig.java (je ne sais pas pourquoi la suppression de BuildConfig.class à l'étape 3a n'a pas entraîné la mise à jour du chemin d'accès par dex, mais jusqu'à ce que je supprime BuildConfig.java, il continuait à recréer gen/com/oldapp_example/oldapp et à y placer BuildConfig.class. Je ne sais pas pourquoi R.java, à partir du même emplacement, n'a pas ce problème. Je soupçonne que BuildConfig.java est généré automatiquement lors de la précompilation, mais pas R.java.)

Les 6 étapes ci-dessus sont ce que j'ai fait pour changer le nom de mon paquet et obtenir une construction réussie*. Il peut y avoir une meilleure façon de gérer les étapes 5 et 6 via des commandes dex pour mettre à jour les chemins, ou peut-être en éditant classes.dex.d dans le répertoire racine du projet. Je ne suis pas familier avec dex et je ne sais pas s'il est possible de supprimer/éditer classes.dex.d. J'ai donc utilisé la méthode consistant à supprimer les fichiers .class qui seront régénérés lors de la compilation. J'ai ensuite vérifié classes.dex.d pour voir ce qui devait encore être mis à jour.

*Il n'y a pas d'erreur ou d'avertissement dans ma compilation SAUF que dex et apkbuilder déclarent tous les deux "Found Deleted Target File" sans préciser ce qu'est ce fichier. Je ne sais pas si cela apparaît dans toutes les constructions, si c'était là avant que je ne modifie le nom de mon paquet, ou si c'est le résultat de mes suppressions et que je manque une étape.

0 votes

J'ai résolu le renommage comme vous l'avez fait, mais avec une simplification : supprimer les dossiers bin et gen. De plus, je n'ai pas pu importer le projet renommé dans Eclipse avant d'avoir modifié le fichier caché .project, qui contenait l'ancien nom du projet sous <name>.

5voto

erdomester Points 3191

Changer le nom d'un paquet est une vraie plaie. Il semble que différentes méthodes fonctionnent pour différentes personnes. Ma solution est rapide et sans erreur. Il semble qu'aucun nettoyage ou réinitialisation d'Eclipse ne soit nécessaire.

  1. Cliquez à droite sur le nom du paquet puis sur Refractor > Rename.
  2. Cliquez à droite sur le nom du projet Outils Android > Renommer le paquet d'applications.
  3. Définissez manuellement les noms des paquets dans le manifeste qui n'ont pas été modifiés par les étapes précédentes.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X