Module in Android Studio umbenennen?

74

Ich habe den falschen Namen eines bestimmten Moduls ausgewählt, das ich in das Gradle-Projekt in Android Studio importiert habe.

In diesem Gesicht möchte ich das Modul umbenennen Facebook1in Facebook.

Ist das im Gradle-Projekt möglich und wie geht das?

Sandale
quelle
11
10 Monate später funktioniert das Umbenennen eines Moduls immer noch nicht ... Ich verbringe mehr Zeit mit IDE-Fehlern als mit meinen eigenen Apps. Schade bei Google.
Patrick
Ich habe mein Root-Modul umbenannt, indem ich einfach mein Projekt geschlossen habe. Umbenennen des Stammverzeichnisses / Moduls und danach der * .iml-Datei im Stammverzeichnis. Danach neu gestartet und es hat funktioniert.
SamuelD

Antworten:

132

Android Studio> = 1.4.1

  1. Klicken Sie mit der rechten Maustaste auf das Modul -> Refactor -> Umbenennen.
  2. Geben Sie den neuen Namen des Moduls ein und klicken Sie auf OK.

Ältere Versionen von Android Studio

Folgendes funktionierte für mich, getestet in Android Studio (AS) 1.1 und 1.0.2, direkt nach dem Importieren eines Projekts.

Unter der Baumansicht "Android" (ATV)

  1. Klicken Sie mit der rechten Maustaste auf den Modulnamen : app, Refactor -> Umbenennen (auf myApp, klicken Sie auf OK)

  2. Öffnen settings.gradle

  3. Wechseln Sie ':app'zu ':myApp'und speichern Sie

  4. Sie werden aufgefordert, " Jetzt synchronisieren " zu tun (die Eingabeaufforderung ist ein blauer Link über der Datei).

    ( Ihr Projekt wird aus ATV verschwinden, aber keine Sorge, beenden Sie einfach AS )

  5. Öffnen Sie in einem Dateimanager (außerhalb von Android Studio) Ihr Projektstammverzeichnis und benennen Sie den Ordner appin ummyApp

  6. Öffnen Sie Ihr Projekt erneut in AS, und Sie werden sehen, dass Ihre Modul- und Gradle-Skripte unter ATV wieder angezeigt werden! :) :)

Herzlichen Glückwunsch - Ihr Modul wurde jetzt umbenannt! (Puh, Zeit für etwas Tee)

T.Coutlakis
quelle
1
Vielen Dank. Der Grund, warum ich das geschrieben habe und vielleicht warum Sie hier sind, ist, dass es derzeit keinen richtigen Weg gibt . @ Scadge
T.Coutlakis
2
Danke für die Lösung. Es ist eine Schande für Google, dass der Versuch, das App-Modul über die Benutzeroberfläche von Android Studio umzubenennen, das Projekt ruiniert.
Myforen
1
@ T.Coutlakis einfache Frage: Schritt 5 muss direkt im Dateisystem ausgeführt werden? Ich habe das Gleiche getan wie Sie, aber diesen Schritt ausgelassen, vielleicht ist er obligatorisch? - Ich war in der Projektansicht und habe im Dialogfeld "Refactoring auswählen" die Option "Modul umbenennen" ausgewählt. Am Ende hatte ich einen anderen Modulnamen als den Verzeichnisnamen. Nach einigen Änderungen im Projekt blieb das Refactoring nicht bestehen: /
Jose_GD
1
Ich kann mit @Jose_GD bestätigen, dass das Umbenennen des Moduls von AS bewirkt, dass das Submodul in AS umbenannt wird, ABER im Dateisystem ist alles, was passiert ist, dass ein neuer Ordner mit dem neuen Namen erstellt und die entsprechende IML-Datei in die Datei eingefügt wurde Der neu erstellte Ordner und der Ordner des alten Moduls bleiben bis auf das gelöschte IML unberührt. Um dies zu beheben, habe ich den gesamten Inhalt des älteren Ordners in den neuen Ordner verschoben und dann den alten Ordner gelöscht. Dann musste ich auch löschen include 'app', eine Gradle-Synchronisierung durchführen, dann erneut hinzufügen und eine weitere Gradle-Synchronisierung durchführen! Benennen Sie das Modul also nicht von AS um!
Rubenjohn
4
-1 Ich mache es für ein frisch erstelltes Projekt, Schritt 4 passiert nie. Wenn ich manuell synchronisiere, zeigt Gradle einen Fehler bezüglich fehlender Modul-App an. Dann schließe ich das Projekt. Ich benenne das Dateisystem um und öffne das Projekt erneut und nichts zeigt auf dem ATV. Herzlichen Glückwunsch, Sie haben eine Stunde wegen veralteter StackOverflow-Antworten und schlampiger Google-Entwickler verloren, die keine verdammte Umbenennungsoperation in eine IDE einfügen können.
Giulio Piancastelli
11

In der Projektansicht links in Android Studio

  1. Klicken Sie mit der rechten Maustaste auf das Modul, dessen Namen Sie ändern möchten
  2. Wählen Sie 'Refactor' -> 'Umbenennen'
  3. Wählen Sie die Option Modul umbenennen
  4. Befolgen Sie die Schritte 1 bis 2 und benennen Sie das Verzeichnis ebenfalls um
Mistwalker
quelle
Dadurch wird die Referenz in der nicht umbenannt Project Structure. Ich kann den alten Namen immer noch sehen. Dies funktioniert also nur, wenn Gradle das Umbenennen nicht zulässt.
Sandalone
3
@sandalone Sie müssen Ihre settings.gradle-Datei auch mit dem neuen Modulnamen aktualisieren
Ani Fichadia
1
Der Verzeichnisname wird auch aktualisiert, wenn wir die Moduloption umbenennen. Ich habe es versucht.
Adnan Ali
@AdnanAli, das heißt, diese Antwort basiert nicht auf Erfahrung oder etwas, sondern ist aus der Luft))
Farid
11

Android Studio 1.3.2,
1.
Wechseln Sie in Android Studio links in die Projektansicht. 2. Klicken Sie mit der rechten Maustaste auf das Modul, das geändert werden soll. -> Refactor -> Umbenennen.
3. Führen Sie sowohl "Verzeichnis umbenennen" als auch "Modul umbenennen" aus.
4. Öffnen Sie die Einstellungen. Gradle, Modulname ändern
5. Build -> Clean Project

HenryChuang
quelle
Dies ist die richtige Antwort für AS 1.3.2. Wenn AS eine IOException auslöst, stellen Sie sicher, dass nicht alle Dateien in Ihrem Projekt in einem Editor oder Datei-Explorer geöffnet sind.
Sébastien
Dies ist auch ab Android Studio 2.1.1 korrekt. Wenn Sie jedoch nur das Modul umbenennen, wird auch das Verzeichnis umbenannt.
Kenn Cal
Dies ist immer noch die richtige Antwort als von Android Studio 2.2, wenn Sie refactor im Android Ansicht versuchen , wird es nicht das Verzeichnis automatisch umbenennen und bewirkt , dass die fehlenden Modulfehler
Joe Maher
9

Sie können dies manuell mit oder ohne Änderung der Ordnerstruktur tun (ändern Sie diese nicht, um geringfügige Auswirkungen auf die Versionskontrolle zu haben.)

Ordnernamen entsprechend ändern

1- Öffnen settings.gradleund ändern Sie den Namen Ihres Moduls (Beispiel von ':facebook1'bis ':facebook')

2- Ändern Sie den Ordnernamen entsprechend (von xxx/facebook1bis xxx/facebook)

3- Wenn andere Module Abhängigkeiten haben: Öffnen Sie die entsprechende build.gradleund ändern Sie die Abhängigkeit (von compile project(':facebook1')bis compile project(':facebook')).

Ohne den Ordnernamen zu ändern

1- Öffnen settings.gradleund ändern Sie den Namen Ihres Moduls (Beispiel von ':facebook1'bis ':facebook')

2- Fügen Sie eine neue Zeile in "settings.gradle" hinzu:

project(':facebook').projectDir = new File(settingsDir, '/facebook1')

3- Wenn andere Module Abhängigkeiten haben: Öffnen Sie die entsprechende build.gradleund ändern Sie die Abhängigkeit (von compile project(':facebook1')bis compile project(':facebook')).

pauminku
quelle
2

In AndroidStudio 2.2.2 hat das Umbenennen des Moduls allein über Refactor / Rename für mich funktioniert. (32-Bit Linux Mint)

Der Umbenennungsdialog bietet zwei Optionen: "Verzeichnis" oder "Modul" (Optionsfelder, die sich gegenseitig ausschließen, zumindest in einem Durchgang). Ich war mir nicht sicher, welche ich auswählen sollte, also endete ich hier und suchte nach einer Antwort. Eine Antwort sagte "beides machen" als zwei Schritte, eine andere Antwort sagte "Modul machen, dann Verzeichnis" als zwei Schritte. Also habe ich zuerst "Modul" gewählt. Zu meiner Überraschung war das alles, was benötigt wurde, sowohl das Modul als auch das Verzeichnis wurden geändert. settings.gradle wurde ebenfalls in einem Schritt durch den Refactor / Rename aktualisiert.

"Gradle Synce" und "Clean Build" wurden ebenfalls ausgelöst. Beim Erstellen auf meinem Tablet keine Beschwerde über die Namensänderung.

Wenn Sie nur diese Antwort hinzufügen, falls jemand anderes mit 2.2.2 oder höher nicht sicher ist, welche Sie auswählen sollen. Sichern Sie zuerst Ihr Projekt, um noch einmal zu wiederholen, was andere gesagt haben.

user2624395
quelle
Ich folgte dem, musste dann aber 1) die .iml-Datei für das Modul bearbeiten 2) die .iml-Datei für das Projekt 3) das Modul build.gradle 4) die Projekteinstellungen.gradle
WillC
... und 5) akzeptieren 'Modul [Alter Modulname] aus Projekt entfernen' 6) Cache ungültig machen und zweimal neu starten. Also YMMV.
WillC
2
  1. Schließen Sie Project und benennen Sie den Modulordner oldNameum, newNameum Project zu öffnen und den Modulnamen include ':oldName'in include ':newName'in zu ändernsettings.gradle
Miravzal
quelle
1

Ab Android Studio 3.4.1

Modul umbenennen

  1. Klicken Sie im Projektfenster mit der rechten Maustaste auf das Modul und wählen Sie Refactor > Rename
  2. Wählen Sie Rename moduleund drücken SieOK
  3. Geben Sie den neuen Modulnamen ein und drücken Sie OK
  4. Wichtig settings.gradle wird automatisch aktualisiert. Sie müssen jedoch alle build.gradleAbhängigkeiten manuell aktualisieren , um den neuen Modulnamen wiederzugeben:
dependencies {
    // manually update this after renaming the module
    implementation project(':newmodulename')
}

Benennen Sie das Paket um, um den neuen Modulnamen wiederzugeben

  1. Klicken Sie im Projektfenster mit der rechten Maustaste auf das gewünschte Paket und wählen Sie Refactor > Rename
  2. Wenn es andere src-Sets mit demselben Paketnamen ( testoder androidTest) gibt, werden Sie in einem Dialogfeld gefragt, ob Sie diese ebenfalls umbenennen möchten. Wenn ja, wählen SieRename package
  3. Geben Sie den neuen Paketnamen ein und drücken Sie Refactor
  4. Wählen Sie Do Refactorin der Refactoring-Vorschau

Tipp: Wählen Sie File > Invalidate Caches / Restartdiese Option , um nicht aufgelöste Ressourcenreferenzen zu beheben, die durch das Umbenennen eines Moduls verursacht wurden.


quelle
0

Dies funktioniert für mich in Android Studio 1.2.1.1

Voraussetzung: Ich verwende NICHT die Refactor-Funktion von Android Studio, um das Modul umzubenennen

Dies sind die Schritte, die ich ausführe:

  1. Benennen Sie den Ordner des Moduls um (direkt im Dateisystem)
  2. Ändern Sie die Datei settings.gradle entsprechend (direkt im Dateisystem).
  3. Öffnen Sie das Projekt in Android Studio

Das ist alles.

Francesco Mameli
quelle
Ihr 3. Schritt ist der gleiche wie Ihr 2. Schritt. Darüber hinaus funktioniert dies auch in AS 1.2.2 nicht. Wer weiß also, was Sie wirklich getan haben, damit die Umbenennung funktioniert?
Giulio Piancastelli
Sie haben Recht 2. und 3. Schritt sind gleich (bearbeitet). Die Version ist 1.2.1.1 (Mac OS), nicht die Version 1.2.2.
Francesco Mameli
-2

Verschiedene Leute scheinen mit verschiedenen Methoden Erfolg zu haben, aber als ich mein Projekt umbenennen wollte von:

com.example.myname.projectname

zu

com.company.projectname

Ich habe alles versucht und der einzige Weg, wie ich es am Ende zum Laufen gebracht habe, war:

1) Beenden Sie Android Studio 2) Sichern Sie alles! (Suchen Sie Ihren Projektordner und erstellen Sie eine Kopie davon.) 3) Suchen Sie alle Instanzen von com.example.myname.projectname und ersetzen Sie sie durch com.company.projectname

Beachten Sie, dass es fünf Stellen gibt (tatsächlich hängt es wahrscheinlich von Ihrem Projekt ab, ich hatte fünf), an denen Sie Ordner umbenennen müssen, da Unterordner mit dem Namen com \ example \ myname \ projectname erstellt werden:

projekt \ app \ src \ main \ java projekt \ app \ src \ androidTest \ java projekt \ app \ build \ generiert \ quelle \ buildConfig \ debug \ projekt \ app \ build \ generiert \ quelle \ buildConfig \ test \ projekt \ app \ Build \ Generated \ Source \ R \ Debug \

Außerdem befindet sich in project.idea \ eine Datei mit dem Namen workspace.xml. In dieser Datei müssen Sie den Text com \ example \ myname \ projectname finden

Andernfalls durchsuchen Sie das Projektverzeichnis nach "com.example.myname.projectname" und ersetzen Sie es durch "com.company.projectname".

4) Öffnen Sie Android Studio erneut. Wenn der ursprüngliche Projektverzeichnisname identisch ist (möglicherweise, wenn der Projektname selbst identisch ist?), wird er erneut geöffnet, wenn Sie ihn das letzte Mal geöffnet haben. Andernfalls sollten Sie ihn wie gewohnt öffnen können.

5) Gehen Sie zu Datei - Projektstruktur (STEUERUNG + ALT + UMSCHALT + S). 6) Ändern Sie unter "Flavours" die Anwendungs-ID in den neuen Namen. 7) Beenden Sie Android Studio und starten Sie es neu. 8) Jetzt sollten Sie in der Lage sein, Ihr Projekt zu erstellen. 9) Geh etwas trinken, das war viel mehr Mühe als es hätte sein sollen!

Ein wirklich wichtiger Hinweis: Sie können nur ASCII-Buchstaben in Ihrem Paketnamen haben (möglicherweise können Sie Zahlen haben, aber nicht als erstes Zeichen). Java selbst erlaubt es Zahlen, einen Paketnamen zu starten, Android jedoch nicht: Paketnamen in Android Studio, wenn der Entwicklername mit einer Nummer beginnt? Ich habe versucht, umzubenennen

Meine Problemumgehung (und wenn Sie sich die Apps auf meinem Telefon ansehen, scheint es das zu sein, was andere tun) ist, wenn Sie eine Nummer am Anfang Ihres Firmennamens oder App-Namens möchten, schreiben Sie das Wort - anstelle von com.123company. 55project benutze vielleicht com.onetwothreecompany.fiftyfiveproject

QUentin
quelle
Die Frage bezieht sich hier auf Module, nicht auf Paketnamen. Sie sind nicht gleich
Jose_GD
Guter Punkt, mein Fehler! Ich bin auf diesen Thread gestoßen, als ich das Problem der Umbenennung meines Projekts gelöst habe und dachte, ich wäre hilfreich und würde die Lösung veröffentlichen, die ich ausgearbeitet habe. Offensichtlich habe ich es nicht richtig gelesen, sorry!
Quentin