Mein Keystore ist beschädigt, daher muss ich die App im Android Market umbenennen und erneut einreichen. Wenn ich jedoch die Paketnamen in Manifest und in den Dateien bearbeite, werden mir unzählige Fehler angezeigt.
Wie kann der Anwendungsname richtig geändert werden?
Antworten:
Wenn Sie Eclipse verwenden, können Sie diese Anweisungen auf der Entwickler-Website von Android ausprobieren . Sie sind speziell für das GestureBuilder-Beispiel vorgesehen, sollten jedoch, soweit ich das beurteilen kann, für jede Anwendung gelten:
Stellen Sie außerdem sicher, dass Sie daran gedacht haben, das Paket selbst zusammen mit den Verweisen darauf in den Dateien umzubenennen. In Eclipse sehen Sie den Namen des Pakets in der Datei- / Baumansicht des Datei-Explorers auf der linken Seite. Nach meiner Erfahrung kann Eclipse damit manchmal etwas finnicky und unzuverlässig sein (z. B. streunende Verweise auf den alten Paketnamen).
quelle
app_name
in res-> values => strings.xmlEs 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.
quelle
So können Sie dies in Eclipse tun:
src/com.android.gesture.builder
).Refactor > Rename
den Namen aus und ändern Sie ihn beispielsweise incom.android.gestureNEW.builder
.<manifest>
Ändern Sie innerhalb des Tags den Paketnamen incom.android.gestureNEW.builder
.Activity
Dateien und führen Sie Ctrl+ Shift+ aus O, um fehlende Importpakete hinzuzufügen. Speichern Sie dann jede Datei.GestureBuilder
Anwendung auf dem Emulator aus.Link zum Beitrag
Aktualisieren Sie super einfach mit der rechten Maustaste auf Ihr Projekt ...
quelle
Ändern Sie in Android Studio , das Sie ganz ehrlich verwenden sollten, den Paketnamen um
right-clicking
den Paketnamen in derproject structure -> Refactor -> Rename...
Es gibt 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 werden alle Importe geändert und redundante Importe für Sie entfernt. Sie können es sogar in Kommentaren, Zeichenfolgen usw. für Sie reparieren lassen.
zuletzt ändern Sie den Paketnamen in Ihrer AndroidManifest.xml entsprechend nach oben. Andernfalls erhalten Sie überall Fehler, wenn Sie sich über R.whatever beschweren.
Eine weitere sehr nützliche Lösung
Erstellen Sie zunächst ein neues Paket mit dem gewünschten Namen
by right clicking on the
Java-Ordner -> Neu -> Paket.`Wählen Sie dann alle Ihre Klassen aus und ziehen Sie sie in das neue Paket. AndroidStudio wird den Paketnamen überall neu faktorisieren.
Danach: in der App-
build.gradle
ID Ihrer App hinzufügen / bearbeiten mit der neuen. dh (com.a.bc
in meinem Fall):Originaler Beitrag und weitere Kommentare hier
quelle
package
unter dem Ordnerjava
Ohne Sonnenfinsternis:
Ändern Sie den Paketnamen und die Aktivitätsnamen in AndroidManifext.xml und an einer anderen Stelle, die in XML-Dateien angezeigt wird (benutzerdefinierte Ansichtsnamen usw.).
Aktualisieren Sie die Paketimportanweisung für alle Quelldateien
Benennen Sie alle Ordner so um, dass sie dem Paketnamen entsprechen. Ordnerpositionen:
a. bin / classes
b. gen
c. src
Aktualisiere den Projektnamen in build.xml (oder der Name deiner Apk ändert sich nicht)
Löschen Sie alle .class-Dateien in bin / classes / com / example / myapp / (wenn Sie diesen Schritt überspringen, werden die Dateien während des Builds nicht neu geschrieben, und dex verursacht eine Reihe von Problemen bei der Verarbeitung von Fehlern "Klassenname stimmt nicht mit Pfad überein"
Löschen von gen / com / example / myapp / BuildConfig.java (Ich weiß nicht, warum das Löschen von BuildConfig.class in Schritt 3a nicht dazu führte, dass dex seinen Pfad dazu aktualisierte, aber bis ich BuildConfig.java löschte, wurde gen / neu erstellt com / oldapp_example / oldapp und BuildConfig.class dort einfügen. Ich weiß nicht, warum R.java vom selben Speicherort dieses Problem nicht hat. Ich vermute, dass BuildConfig.java in der Vorkompilierung automatisch generiert wird, aber R.java ist nicht)
Die obigen 6 Schritte habe ich getan, um meinen Paketnamen zu ändern und einen erfolgreichen * Build zu erhalten. Es gibt möglicherweise eine bessere Möglichkeit, die Schritte 5 und 6 über Dex-Befehle zum Aktualisieren von Pfaden oder durch Bearbeiten von classes.dex.d im Stammverzeichnis des Projekts zu handhaben. Ich bin nicht mit dex vertraut oder ob es in Ordnung ist, classes.dex.d zu löschen / bearbeiten, also habe ich die Methode zum Löschen von .class-Dateien gewählt, von denen ich weiß, dass sie im Build neu generiert werden. Ich habe dann classes.dex.d überprüft, um festzustellen, was noch aktualisiert werden muss.
* In meinem Build sind keine Fehler oder Warnungen mehr vorhanden. EXCEPT dex und apkbuilder geben beide "Gelöschte Zieldatei gefunden" an, ohne Angaben zu dieser Datei zu machen. Ich bin mir nicht sicher, ob dies in jedem Build angezeigt wird, ob es dort war, bevor ich meinen Paketnamen durcheinander gebracht habe, oder ob es ein Ergebnis meiner Löschungen ist und mir ein Schritt fehlt.
quelle
Folge diesen Schritten:-
GETAN
quelle
Der schnellste Weg, dies in Android Studio 1.3 zu tun :
manifest
Module Settings[F4]-> Flavors
, inApplication Id
schreiben Sie den gleichen Namen.[right-click-> new-> package]
[Right-click-> Refactor-> Move-> {Select package}-> Refactor]
PS Wenn Sie dieser Reihenfolge nicht folgen, können Sie am Ende alle Java-Dateien nacheinander mit neuen Importen und einer Reihe von Fehlern bei der Kompilierung ändern. Daher ist die Reihenfolge sehr wichtig.
quelle
Das Ändern des Paketnamens ist ein Schmerz im Arsch. Es sieht so aus, als würden verschiedene Methoden für verschiedene Menschen funktionieren. Meine Lösung ist schnell und fehlerfrei. Es sieht so aus, als ob keine Reinigung oder ein Zurücksetzen der Sonnenfinsternis erforderlich ist.
quelle
Bernstein hat die Methode, verwenden Sie das Eclipse-Tool "Anwendungspaket umbenennen", müssen Sie möglicherweise auch nachträglich einige Aufräumarbeiten durchführen. Außerdem verliert Eclipse manchmal den Überblick, 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 Eclipse möglicherweise schließen und neu starten. Voo-doo-Lösungen, aber Eclipse kann so sein.
quelle
Ich fand die einfachste Lösung, Regexxer zu verwenden, um "com.package.name" durch "com.newpackage.name" zu ersetzen und die Verzeichnisse dann ordnungsgemäß umzubenennen. Super einfach, super schnell.
quelle
src
Ordner um und setzen Sie ein Häkchen fürrename subpackages
quelle
Es gibt auch eine andere Lösung für Benutzer ohne Eclipse. Ändern Sie einfach das Paketattribut im <manifest> -Tag in AndroidManifest.xml, indem Sie den alten Paketnamen durch einen neuen ersetzen. Hinweis: Sie müssen dann alle zugehörigen Importanweisungen und zugehörigen Ordner in Ihrem Projekt manuell anpassen.
quelle
Alternative:
quelle
Klicken Sie mit der rechten Maustaste auf Projekt> Android Tools> Anwendungspaket umbenennen
Gehen Sie zu src und klicken Sie mit der rechten Maustaste auf Ihr Hauptpaket> Refactor> Umbenennen
Gehen Sie zur Manifestdatei und ändern Sie Ihren Paketnamen.
quelle
Ich habe nur ein paar Stunden verloren, als ich alle Lösungen ausprobiert habe. Ich war mir sicher, das Problem liegt in meinem Code - apk startet aber einige Fehler bei der Arbeit mit verschiedenen Klassen und Aktivitäten.
Nur so kann ich mit meinem Projekt arbeiten:
Für mich funktioniert es nur Lösung.
quelle
Die Verwendung von IntelliJ mit dem Android (Studio) -Plugin war also: Ich ging nach
AndroidManifest.xml
oben und änderte den Paketnamen, indem ich mit der rechten Maustaste auf -> Refactor -> Umbenennen klickte. Unser damaliger Paketname bestand aus vier Teilena.b.c.d
, dem neuen nura.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
), klickte mit der rechten MaustasteR
und Refactor-> Move [d] in ein höheres Paket. Gleiches gilt fürBuildConfig
inapp\build\generated\source\buildConfig\development\debug\a\b\c\d
.Mit Refactor-> Move aktualisiert IntelliJ alle Verweise auf
BuildConfig
undR
.Schließlich habe ich alle applicationId [s] aktualisiert, die ich in gradle.build gefunden habe. Ich drücke auf Projekt reinigen, Projekt erstellen und neu erstellen. Löschte die App von meinem Handy und drückte auf "Play". Es hat alles geklappt, so dass das Refactoring einfach und recht schnell war.
quelle
In Android Studio 1.2.2 sagen , wenn Sie ändern möchten ,
com.example.myapp
umorg.mydomain.mynewapp
Sie die Schritte in jedem der Verzeichnisse im folgenden Screenshot als angezeigt folgen kann. Sie erhalten die Vorschauoption, damit Sie eine Vorschau anzeigen können, bevor Sie Änderungen vornehmen.Gehen Sie zu
Refactor -> Rename
und geben Sie Ihren neuen Namen. Sie müssen dies für jeden Ordner tun, z. B. für com, example und myapp. Die Importe werden automatisch aktualisiert, sodass Sie sich keine Sorgen machen müssen.Aktualisieren Sie auch die Datei,
build.gradle
die nicht automatisch aktualisiert wird.Danach wird es darum bitten, es zu
sync
tun. Dann wird alles gut. Danach kann ich meine APK in den Google Store hochladen. Stellen Sie sicher, dass Sie Ihre App signiert haben, um sie in den Store hochzuladen.quelle
quelle