web-dev-qa-db-fra.com

Comment changer le nom du paquet d'une application Android

Mon magasin de clés est corrompu. C'est pourquoi Android Market me demande de renommer l'application et de la renvoyer. Cependant, chaque fois que je vais modifier les noms de paquet dans Manifest et dans tous les fichiers, cela me donne des tonnes d'erreurs.

Quelle est la bonne façon de changer le nom de l'application?

132
Allen Gingrich

Si vous utilisez Eclipse, vous pouvez essayer ces instructions à partir du site de développement d'Android. Ils sont spécifiquement destinés à l'exemple GestureBuilder mais devraient s'appliquer à toutes les applications pour autant que je sache:

Voici comment vous pourriez faire cela dans Eclipse:

  1. Cliquez avec le bouton droit sur le nom du package (src/com.Android.gesture.builder).
  2. Sélectionnez Refactor> Rename et modifiez le nom, par exemple en com.Android.gestureNEW.builder
  3. Ouvrez le fichier manifeste. À l'intérieur de <manifest>, remplacez le nom du package par com.Android.gestureNEW.builder
  4. Ouvrez chacun des deux fichiers d'activité et faites Ctrl-Maj-O pour ajouter les packages d'importation manquants, puis enregistrez chaque fichier. Exécutez l'application GestureBuilder sur l'émulateur.

Assurez-vous également de vous rappeler de renommer le paquet lui-même ainsi que ses références dans les fichiers. Dans Eclipse, vous pouvez voir le nom du paquet dans la fenêtre Explorateur de fichiers/Voir l'arborescence à gauche. D'après mon expérience, Eclipse peut parfois être un peu compliqué et peu fiable (laisser des références errantes à l'ancien nom du package, par exemple).

101
eldarerathis

Il existe un moyen de changer facilement le nom du paquet dans Eclipse. Faites un clic droit sur votre projet, faites défiler l'écran jusqu'aux outils Android, puis cliquez sur Renommer le package d'application.

302
Marc Bernstein

Voici comment vous pouvez faire cela dans Eclipse:

  1. Cliquez avec le bouton droit sur le nom du package (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 la balise <manifest>, modifiez le nom du package en com.Android.gestureNEW.builder.
  4. Ouvrez chacun des deux fichiers Activity et faites Ctrl+Shift+O pour ajouter des packages d'importation manquants, sauvegardez chaque fichier.
  5. Exécutez l'application GestureBuilder sur l'émulateur.

Lien vers l'article

Mise à jour très facile, faites un clic droit sur votre projet ... enter image description here

52
AZ_

Dans Android Studio, que vous devriez utiliser en toute honnêteté, modifiez le nom du package par right-clicking dans le nom du package dans project structure -> Refactor -> Rename....

Il vous propose ensuite de renommer le répertoire ou le package. Sélectionnez le package. Le répertoire devrait suivre. Tapez votre nouveau nom de package et cliquez sur Refactor. Cela modifiera toutes les importations et supprimera les importations redondantes pour vous. Vous pouvez même le faire réparer pour vous dans les commentaires et les chaînes, etc.

Enfin, changez le nom du paquet en conséquence dans votre AndroidManifest.xml vers le haut. Sinon, vous obtiendrez des erreurs partout pour vous plaindre de tout.

Une autre solution très utile

Commencez par créer un nouveau package avec le nom souhaité by right clicking on theJava folder -> new -> package.`

Ensuite, sélectionnez et faites glisser toutes vos classes dans le nouveau package. AndroidStudio va re-factoriser le nom du paquet partout.

Après cela: dans votre application build.gradle ajouter/modifier applicationId avec le nouveau. c'est-à-dire (com.a.bc dans mon cas): 

defaultConfig {
    applicationId "com.a.bc"
    minSdkVersion 13
    targetSdkVersion 19
}

Article original et autres commentaires ici

10
craned

Sans Eclipse:

  1. Modifiez le nom du package et les noms d'activité dans AndroidManifext.xml et partout ailleurs dans les fichiers .xml (noms de vue personnalisés, etc.).

  2. Mettre à jour la déclaration d'importation de package dans tous les fichiers source

  3. Renommez tous les dossiers pour qu'ils correspondent au nom du package. Emplacements des dossiers: 
    une. bin/classes
    b. gen
    c. src

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

  5. Supprimez tous les fichiers .class dans bin/classes/com/exemple/monapp/(si vous ignorez cette étape, les fichiers ne sont pas réécrits pendant la construction et dex génère un lot de problèmes de traitement des erreurs "le nom de la classe ne correspond pas au chemin".

  6. Supprimez gen/com/example/myapp/BuildConfig.Java (je ne sais pas pourquoi la suppression de BuildConfig.class à l'étape 3a n'a pas obligé dex à mettre à jour son chemin d'accès à cela, mais jusqu'à ce que je supprime BuildConfig.Java, elle recréait continuellement gen/com/oldapp_example/oldapp et mettre BuildConfig.class ici. Je ne sais pas pourquoi R.Java du même endroit n’a pas ce problème. Je suppose que BuildConfig.Java est généré automatiquement en pré-compilation mais R.Java n'est pas)

Les 6 étapes ci-dessus correspondent à ce que j’ai fait pour modifier le nom de mon package et obtenir un * build réussi. Il peut exister un meilleur moyen de gérer les étapes 5 et 6 via les commandes dex pour mettre à jour les chemins, ou peut-être en modifiant classes.dex.d dans le répertoire racine du projet. Je ne suis pas familier avec dex ou s'il est correct de supprimer/modifier classes.dex.d, je suis donc allé à la méthode de suppression des fichiers .class qui, je le sais, seront régénérés dans la construction. J'ai ensuite vérifié classes.dex.d pour voir ce qui devait encore être mis à jour.

* Il ne reste aucune erreur ni aucun avertissement dans ma construction, à l'exception de dex et d'apkbuilder: "Fichier cible supprimé détecté", sans précision sur le contenu de ce fichier. Je ne suis pas sûr que cela apparaisse dans chaque version, s'il existait avant que je ne m'occupe de mon nom de paquet ou s'il résulte de mes suppressions et qu'il me manque une étape.

8
clusterflux

Suivez ces étapes:-

  • Faites un clic droit sur le projet.
  • Aller aux outils Android.
  • Cliquez sur Renommer le package d'application.
  • Changer le nom du package d'application.

TERMIN&EACUTE;

6
Deepak Sharma

Le moyen le plus rapide de le faire dans Android Studio 1.3 :

  1. Changer le nom du paquet dans la manifest
  2. Allez à Module Settings[F4]-> Flavors, dans Application Id écrivez le même nom.
  3. Créez un nouveau paquet avec ce nom: [right-click-> new-> package]
  4. Sélectionnez tous les fichiers Java de votre projet, puis passez à [Right-click-> Refactor-> Move-> {Select package}-> Refactor].

P.S. Si vous ne suivez pas cet ordre, vous pouvez modifier tous les fichiers Java un par un avec de nouvelles importations et de nombreuses erreurs de compilation. L'ordre est donc très important.

6
Movsar Bekaev

Changer le nom du paquet est une douleur dans le cul. Il semble que différentes méthodes fonctionnent pour différentes personnes. Ma solution est rapide et sans erreur. On dirait qu'aucun nettoyage ou réinitialisation d'Eclipse n'est nécessaire.

  1. Cliquez avec le bouton droit sur le nom du paquet, puis sur Refractor> Rename.
  2. Cliquez avec le bouton droit sur le nom du projet Outils Android> Renommer le package d'application.
  3. Définissez manuellement les noms de package dans le manifeste qui n'ont pas été modifiés par les étapes précédentes.
5
erdomester

J'ai trouvé la solution la plus simple était d'utiliser Regexxer pour remplacer "com.package.name" par "com.newpackage.name", puis renommer les répertoires correctement. Super facile, super rapide.

3
robisaks
  1. Fist changer le nom du paquet dans le fichier manifeste
  2. Re-factoriser> Renommez le nom du paquet dans le dossier src et cochez rename subpackages
  3. C'est tout ce que vous avez fait.
3
Sathirar

Bernstein a la méthode, utilisez l'outil Eclipse, "Rename Application Package", vous devrez peut-être effectuer un nettoyage même après coup. De plus, Eclipse perd parfois la trace de certains éléments lorsque vous apportez des modifications à un projet. Vous devrez peut-être utiliser l'outil "Nettoyer le projet" (sous le menu "Projet".) Si cela ne fonctionne pas, vous devrez peut-être fermer et redémarrer Eclipse. Solutions Voo-doo, mais Eclipse peut être ainsi. 

3
m0j0

Il existe également une autre solution pour les utilisateurs sans Eclipse: il suffit de modifier l'attribut du package dans la balise <manifest> dans AndroidManifest.xml, en remplaçant l'ancien nom du package utilisé par un nouveau. Remarque: Vous devez également ajuster manuellement toutes les instructions d'importation associées et les dossiers associés dans votre projet.

<manifest xmlns:Android="http://schemas.Android.com/apk/res/Android"
    package="new.package.name"
    .....
</manifest>
2
LikeYou
  1. Clic droit sur Projet> Outils Android> Renommer le package d'application

  2. Allez sur src et faites un clic droit sur votre paquet principal> Refactor> Renommer 

  3. Allez dans le fichier manifeste et changez le nom de votre paquet.

1
ritesh4326

Donc, utiliser IntelliJ avec le plugin Android (Studio) était: je suis allé à AndroidManifest.xml en haut et j'ai changé le nom du paquet en cliquant avec le bouton droit de la souris -> Refactor -> renommer . Notre nom de paquet avait alors quatre parties a.b.c.d, le nouveau a.b.c . J'ai donc renommé les trois premiers. Ensuite, je suis allé dans le répertoire des sources générées (app\build\generated\source\r\development\debug\a\b\c\d), j'ai cliqué avec le bouton droit sur la classe R et sur Refactor-> Déplacer [d] dans un paquet plus élevé. Idem avec BuildConfig dans app\build\generated\source\buildConfig\development\debug\a\b\c\d.

En utilisant Refactor-> Move, IntelliJ met à jour toutes les références à BuildConfig et R

Enfin, j'ai mis à jour tous les applicationId [s] que j'ai trouvés dans gradle.build que j'ai trouvé. Je frappe sur Clean Project, Make et Rebuild Project. Supprimez l'application de mon téléphone et cliquez sur "Play". Tout a fonctionné, le refactoring a donc été facile et rapide.

1
Raul Pinto

Je viens de perdre quelques heures à essayer toutes les solutions. J'étais sûr, le problème est dans mon code - apk de départ, mais quelques erreurs lorsque je travaille avec différentes classes et activités.

Seul moyen de travailler avec mon projet:

  1. le renommer - fichier/renommer et cocher toutes les cases
  2. recherchez des lieux non renommés, j'avais dans l'un des anciens noms de la mise en page toujours dans les outils: context = "..
  3. créer un nouvel espace de travail
  4. importer un projet dans un nouvel espace de travail

Pour moi ça marche, seule solution.

1
Dudeist

Alternative: 

  1. Ouvrez AndroidManifest.xml
  2. Change package = "NEW NAME" dans la balise manifeste.
1
MapleLover

Dans Android Studio 1.2.2 Indiquez si vous souhaitez modifier com.example.myapp en org.mydomain.mynewappVous pouvez suivre les étapes décrites dans chacun des répertoires, comme indiqué dans la capture d'écran ci-dessous. Il vous donnera l'option de prévisualisation afin que vous puissiez prévisualiser avant d'apporter des modifications. 

Allez à Refactor -> Rename et donnez votre nouveau nom. Vous devez le faire pour chacun des dossiers, par exemple pour com, exemple et myapp. Il mettra automatiquement à jour les importations afin que vous n'ayez pas à vous en préoccuper .  enter image description here

Mettez également à jour le fichier build.gradle qui n'est pas mis à jour automatiquement.

defaultConfig {
        applicationId "org.mydomain.mynewapp" //update the new package name here
        minSdkVersion 15
        targetSdkVersion 22
        versionCode 1
        versionName "1.0"
    }

Après cela, il demandera à sync de le faire. Alors tout ira bien. Je suis en mesure de télécharger mon APK sur Google Store après cela. Assurez-vous que vous avez signé votre application pour la télécharger dans le magasin.

1
Krishnadas PC
  1. Dans votre studio Android, dans le panneau du projet, l'icône d'engrenage "Cliquez dessus".
  2. Décocher les paquets vides compacts au milieu
  3. Maintenant, le répertoire du paquet a été divisé en différents répertoires.
  4. Sélectionnez le répertoire que vous souhaitez renommer.
  5. Faites un clic droit sur ce répertoire particulier.
  6. Sélectionnez refactor puis renommez l'option.
  7. La boîte de dialogue a été ouverte, renommez-la.
  8. Après avoir mis un nouveau nom, cliquez sur Refactor.
  9. Cliquez ensuite sur Do Refactor en bas.
  10. Ensuite, Android Studio mettra à jour toutes les modifications.
  11. Maintenant, ouvrez le fichier build.gradle, mettez à jour l’applicationId et synchronisez-le.
  12. Maintenant, allez dans le fichier manifeste et renommez le paquet.
  13. Reconstruisez votre projet.
  14. Vous avez terminé :)
0
Hanisha