2010-10-26 6 views
131

Mein Schlüsselspeicher ist beschädigt, daher fordert der Android Market, dass ich die App umbenenne und erneut einreiche. Jedes Mal, wenn ich die Paketnamen in Manifest und in allen Dateien bearbeite, bekomme ich viele Fehler.So ändern Sie den Paketnamen einer Android-Anwendung

Was ist der richtige Weg, um den Namen der Anwendung zu ändern?

+3

zum Glück sie eine "magische, Namen Schaltfläche Paket" seit 2010 hinzugefügt ändern - @Marc Bernstein Antwort sehen - http : //stackoverflow.com/a/4025633/383414 –

+0

danke Richard Le ... – DoruChidean

+3

Mögliches Duplikat von [Android Studio Rename Package] (http://stackoverflow.com/questions/16804093/android-studio-rename-package) –

Antwort

101

Wenn Sie Eclipse verwenden, können Sie versuchen these instructions von Android-Entwickler-Website. Sie sind speziell für die GestureBuilder Probe aber so weit für jede Anwendung gelten als ich sagen kann:

[H] ere ist, wie Sie dies in Eclipse tun könnte:

  1. Rechtsklick auf die Paketname (src/com.android.gesture.builder).
  2. Refactor auswählen> Umbenennen und den Namen ändern, z. B. in com.android.gestureNEW.builder.
  3. Öffnen Sie die Manifestdatei. Ändern Sie innerhalb des Tags <manifest> den Paketnamen in com.android.gestureNEW.builder.
  4. Öffnen Sie jede der beiden Activity-Dateien und führen Sie Strg-Shift-O aus, um fehlende Importpakete hinzuzufügen, und speichern Sie dann jede -Datei. Führen Sie die GestureBuilder-Anwendung auf dem Emulator aus.

auch sicher, dass Sie das Paket selbst zusammen mit den Hinweisen auf sie in den Dateien zu umbenennen in Erinnerung haben. In Eclipse können Sie den Namen des Pakets im Datei Explorer/Baumansicht auf der linken Seite sehen. Meiner Erfahrung nach kann Eclipse manchmal ein wenig nervtötend und unzuverlässig sein (z. B. verirrte Verweise auf den alten Paketnamen).

+0

Dies ist wahrscheinlich der beste Weg, es zu tun, gibt es keine magische, Change-Paket-Name-Taste. – blindstuff

+13

Ja, es gibt. Siehe @Marc Bernsteins Antwort. –

+0

Ich glaube nicht, dass der ursprüngliche Fragesteller Java-Paketnamen ändern musste. Marc's sollte die akzeptierte Antwort sein. – mpellegr

299

Es gibt eine Möglichkeit, den Paketnamen in Eclipse einfach zu ändern. Klicken Sie mit der rechten Maustaste auf Ihr Projekt, scrollen Sie nach unten zu Android Tools und klicken Sie dann auf Anwendungspaket umbenennen.

+2

Ich habe Eldar's gerade ausprobiert und es hat funktioniert - aber ich bin mir sicher, dass das auch funktionieren wird. –

+26

Diese Antwort ist viel einfacher. Dies hätte akzeptiert werden müssen. – Ashwin

+2

Sehr einfacher Weg! Ausgezeichnet. – MastAvalons

3

Bernstein hat die Methode, verwenden Sie das Eclipse-Tool, "Rename Application Package", müssen Sie einige Aufräumarbeiten auch nach der Tat tun. Außerdem verliert Eclipse manchmal die Übersicht, wenn Sie Änderungen an einem Projekt vornehmen. Möglicherweise müssen Sie das Tool "Projekt bereinigen" (im Menü "Projekt") verwenden. Wenn dies nicht funktioniert, müssen Sie möglicherweise Eclipse schließen und neu starten. Voo-doo-Lösungen, aber Eclipse kann so sein.

3

Ich fand die einfachste Lösung war, Regexxer zu verwenden, um "com.package.name" durch "com.newpackage.name" zu ersetzen, dann benennen Sie die Verzeichnisse richtig um. Super einfach, super schnell.

52

Hier ist, wie Sie dies in Eclipse tun könnte:

  1. der rechten Maustaste auf den Paketnamen (src/com.android.gesture.builder).
  2. Wählen Sie Refactor > Rename und ändern Sie den Namen, z. B. in com.android.gestureNEW.builder.
  3. Öffnen Sie die Manifestdatei. Ändern Sie innerhalb des Tags <manifest> den Paketnamen in com.android.gestureNEW.builder.
  4. Öffnen jeder der beiden Activity Dateien und tun Ctrl +Umschalt +O hinzufügen Importpakete fehlt, wird dann jede Datei speichern.
  5. Führen Sie die GestureBuilder Anwendung auf dem Emulator.

Link to post

aktualisieren super einfach Weg direkt auf Ihrem Projekt klicken ... enter image description here

+2

Ziemlich gute Möglichkeit, dies zu tun! – Dude

+0

wähle mich wenn du magst :) –

+2

Schon erledigt, sicher. ;-) – Dude

5

Paketnamen zu ändern, ist ein Schmerz in den Arsch. Es sieht so aus, als ob verschiedene Methoden für verschiedene Leute funktionieren. Meine Lösung ist schnell und fehlerfrei. Sieht so aus, als ob keine Reinigung oder Rücksetzung der Finsternis benötigt wird.

  1. Rechtsklick auf den Paketnamen dann Refractor> Umbenennen.
  2. Klicken Sie mit der rechten Maustaste auf den Projektnamen Android-Tools> Anwendungspaket umbenennen.
  3. Legen Sie die Paketnamen manuell im Manifest fest, die in den vorherigen Schritten nicht geändert wurden.
2

Es gibt auch eine andere Lösung für Anwender ohne Eclipse einfach das Paket Attribut ändern in <Manifest> Tag in AndroidManifest.xml, durch der die alten Paketnamen durch einen neuen verwendet zu ersetzen. Hinweis: Sie müssen alle zugehörigen Importanweisungen und zugehörigen Ordner in Ihrem Projekt manuell anpassen.

<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="new.package.name" 
    ..... 
</manifest> 
4
  1. Faust der Paketnamen in der Manifest-Datei, die
  2. Re-Faktor> Umbenennen den Namen in src Ordnern des Pakets und rename subpackages
  3. für ein Häkchen setzen ändern, ist alles, was Sie fertig sind.
+0

Ich habe versucht, Marc Bernstein Android Tools-> Rename Application Package, aber es gab mir einen Fehler. Dies war einfacher, obwohl ich einige Dinge nach der Änderung beheben musste –

7

Ohne Eclipse-:

  1. ändern Paketnamen und Aktivitätsnamen in AndroidManifext.xml und anderswo zeigt sie in XML-Dateien (benutzerdefinierte Ansicht Name, usw.) bis

  2. Update-Paket Importanweisung für alle Quelldateien

  3. Benennen Sie alle Ordner um, damit sie dem Paketnamen entsprechen. Ordnerpositionen:
    a. bin/Klassen
    b. gen
    c.
    src

  4. Aktualisieren Sie den Projektnamen in build.xml (oder dem Namen Ihres APK-ändert sich nicht)

  5. löschen alle.Klassendateien in bin/classes/com/example/myapp/(Wenn Sie diesen Schritt überspringen, werden die Dateien während des Builds nicht neu geschrieben und dex gibt eine Reihe von Problemen bei der Verarbeitung von Fehlernachrichten

  6. löschen gen/com/example/myapp/BuildConfig.java (ich weiß nicht, warum in Schritt 3a BuildConfig.class löschen nicht dex nicht verursacht zu aktualisieren Weg, dies zu, aber bis ich BuildConfig.java gelöscht es gehalten gen neu zu erstellen/com/oldapp_example/oldapp und dort BuildConfig.class setzen. ich weiß nicht, warum R.java von der gleichen Stelle nicht über dieses Problem. ich vermute, BuildConfig.java ist automatisch generierte in pre-Kompilierung aber R.java ist nicht)

Die oben genannten 6 Schritte sind was ich Habe meinen Paketnamen geändert und einen erfolgreichen * Build erhalten. Es gibt möglicherweise einen besseren Weg, die Schritte 5 und 6 über dex-Befehle zu behandeln, um Pfade zu aktualisieren, oder vielleicht, indem classes.dex.d im Stammverzeichnis des Projekts bearbeitet wird. Ich bin nicht vertraut mit Dex oder wenn es in Ordnung ist, classes.dex.d zu löschen/zu bearbeiten, ging ich mit der Methode des Löschens von .class-Dateien, von denen ich weiß, dass sie im Build neu generiert werden. Ich habe dann classes.dex.d überprüft, um zu sehen, was noch aktualisiert werden muss.

* Keine Fehler oder in meinem Build links Warnungen AUSSER dex und apkbuilder beide Zustand „Gefunden Deleted Zieldatei“ ohne Einzelheiten zu wissen, was die Datei ist. Ich bin mir nicht sicher, ob dies in jedem Build auftaucht, ob es dort war, bevor ich mit meinem Paketnamen herumhantierte, oder ob es ein Ergebnis meiner Löschungen war und mir ein Schritt fehlte.

+0

Ich löste die Umbenennung wie Sie, aber mit einer Vereinfachung: löschen bin und gen-Ordner. Auch konnte ich das umbenannte Projekt in Eclipse nicht importieren, bis ich die versteckte Datei .project änderte, es hatte den alten Projektnamen unter –

1

Alternative:

  1. öffnen AndroidManifest.xml
  2. Paket = "NEUER NAME" im Manifest-Tag.
6

Gehen Sie folgendermaßen vor: -

  • rechts auf das Projekt klicken.
  • Zum Android-Tools.
  • Klicken Sie auf Umbenennen Anwendungspaket.
  • den Namen Anwendungspaket ändern.

DONE

+1

Das funktioniert, aber Sie sollten auch den Basis-src-Ordner-Paketnamen refaktorieren. – ashishduh

10

In Android Studio, die, ganz ehrlich, sollten Sie die Paketnamen von right-clicking auf den Paketnamen in den project structure -> Refactor -> Rename...

ändern verwenden, werden Sie geben dann die Möglichkeit, das Verzeichnis oder das Paket umzubenennen. Wählen Sie das Paket aus. Das Verzeichnis sollte folgen. Geben Sie Ihren neuen Paketnamen ein und klicken Sie auf Refactor. Es wird alle Importe ändern und redundante Importe für Sie entfernen. Sie können es sogar in Kommentaren und Zeichenfolgen usw. für Sie korrigieren lassen.

Zuletzt, ändern Sie den Paketnamen entsprechend in Ihrem AndroidManifest.xml nach oben. Sonst werden Sie Fehler bekommen, wenn Sie sich über R. wasauchimmer beschweren.

Eine weitere sehr nützliche Lösung

Erstellen Sie zunächst ein neues Paket mit dem Namen by right clicking on the Java-Ordner gewünscht -> neu -> Paket.`

Dann wählen und ziehen Sie alle Ihre Klassen in das neue Paket. AndroidStudio wird den Paketnamen überall neu einteilen.

Danach: in Ihrer App build.gradle hinzufügen/bearbeiten applicationId mit dem neuen. dh (com.a.bc in meinem Fall):

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

Original-Beitrag und mehr Kommentare here

+0

Seltsam, wenn ich das mache, gibt es nicht die Wahl Verzeichnis/Paket ... nur die "Modul-Name" ... – Fattie

+1

Es macht mir das gleiche jetzt, wenn ich mit der rechten Maustaste auf das Stammverzeichnis. Zumindest für mich ist das nicht mein tatsächlicher Paketname. Wenn der Paketname com.a.bc lautet, sollte sich unter dem Stammverzeichnis bc ein Verzeichnis befinden. Dort bekommst du die verschiedenen Optionen. Im Moment bekomme ich ein Verzeichnis oder ein Modul. Probier das Modul aus. Sie können es immer rückgängig machen (Strg + z sollte es tun), wenn es etwas bricht. – craned

+0

Danke .. Scheiße, meinst du das ".idea" -Verzeichnis oder das "App" -Verzeichnis? Ich habe gerade eine erklärende Q .. http://stackoverflow.com/questions/23786361/android-studio-mac-fully-change-project-name Ahh .. Ich sehe jetzt "Wählen Refactoring Verzeichnis/Modul", wenn ich klicke auf meinen "app" ordner .... hoy caramba! – Fattie

1
  1. Rechtsklick auf Projekt> Android Tools> Umbenennen Anwendungspaket

  2. Zum src und der rechten Maustaste auf Ihrem Hauptpaket> Refactor> Umbenennen

  3. Wechseln Sie zur Manifestdatei und ändern Sie den Paketnamen .

1

Ich habe nur wenige Stunden verloren alle Lösungen zu versuchen. Ich war mir sicher, Problem ist in meinem Code - apk startet aber einige Fehler bei der Arbeit mit verschiedenen Klassen und Aktivitäten.

Nur Weg mit meinem Projekt arbeiten:

  1. benennen Sie sie - Datei/umbenennen und überprüfen Sie alle Kontrollkästchen
  2. Prüfung für nicht umbenannt Orte, hatte ich in einem alten Layout Name noch in Tools: context = “..
  3. neuen Arbeitsbereich erstellen
  4. Import-Projekt in neuen Arbeitsbereich

Für mich ist es funktioniert, einzige Lösung.

6

Der schnellste Weg, dass 1,3 in Android Studio zu tun:

  1. ändern Sie die Paketnamen in den manifest
  2. -Module Settings[F4]-> Flavors gehen, in Application Id die gleichen Namen schreiben.
  3. erstellen mit diesem Namen neues Paket: [right-click-> new-> package]
  4. alle Dateien Ihres Projektes Java auswählen und dann [Right-click-> Refactor-> Move-> {Select package}-> Refactor]

P. S. vorgehen Wenn Sie dieser Reihenfolge nicht folgen, können Sie am Ende alle Java-Dateien mit neuen Importen und einer Reihe von Kompilierzeitfehlern ändern, daher ist die Reihenfolge sehr wichtig.

+1

Bei dieser Methode bleibt das R beim Refactoring unverändert. so importieren com.app.myapp.R ändert sich nicht auf den neuen Paketnamen, und Sie müssen eins nach dem anderen ... – OWADVL

+0

@OWADVL, R ändert sich automatisch, wenn Sie Dateien in das neue Paket verschieben, führt Android Studio automatisch Wiederaufbau Wenn Sie .java Dateien verschieben, mache ich diese Sache jeden Tag und solange ich diese Reihenfolge behalte, ändere ich nichts in .java Dateien manuell –

+0

Aber in Eclipse konnten wir die App Paket ID ändern, ohne das Paket von allen zu ändern der Code. Der Assistent würde BuildConfig & R-Referenzen für Sie umbenennen. Ich bin verwirrt, dass das Gleiche in AS nicht existiert. – Tom

1

In Android Studio 1.2.2 sagen, wenn Sie wollen com.example.myapp-org.mydomain.mynewapp Sie die Schritte in jedem der Verzeichnisse im folgenden Screenshot als angezeigt folgen können sich ändern. Es gibt Ihnen die Vorschau-Option, so dass Sie eine Vorschau anzeigen können, bevor Sie Änderungen vornehmen.

Gehen Sie zu Refactor -> Rename und geben Sie Ihren neuen Namen. Sie müssen es für jeden der Ordner tun, sagen wir für com, example und myapp. Die Importe werden automatisch aktualisiert, sodass Sie sich keine Sorgen machen müssen. enter image description here

Aktualisieren Sie auch die Datei build.gradle, die nicht automatisch aktualisiert wird.

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

Danach wird es nach sync tun es tun. Dann wird alles gut. Ich kann meine APK danach im Google Store hochladen. Stellen Sie sicher, dass Sie Ihre App signiert haben, um sie in den Store zu laden.

0

Also, mit IntelliJ mit Android (Studio) Plugin war: Ich ging zu AndroidManifest.xml oben und änderte Paketnamen mit der rechten Maustaste -> Refactor -> umbenennen. Unser damaliger Paketname hatte vier Teile a.b.c.d, der neue nur a.b.c. Also habe ich die ersten drei umbenannt. Dann ging ich in das Verzeichnis der generierten Quellen (app\build\generated\source\r\development\debug\a\b\c\d), Rechtsklick auf R Klasse und Refactor-> Move [d] es auf ein Paket höher. Gleiches mit BuildConfig in app\build\generated\source\buildConfig\development\debug\a\b\c\d.

Mithilfe von Refactor-> Move aktualisiert IntelliJ alle Verweise auf BuildConfig und R.

Schließlich habe ich alle applicationId [s] aktualisiert, die ich in gradle.build gefunden habe. Ich habe Clean Project, Make und Rebuild Project gedrückt. Habe die App von meinem Handy gelöscht und auf "Play" geklickt. Es hat alles funktioniert und das Refactoring war einfach und schnell.

Verwandte Themen