Kopieren Sie ein vorhandenes Projekt mit einem neuen Namen in Android Studio


100

Ich möchte mein Android-Projekt kopieren und aus denselben Dateien ein neues Projekt mit einem anderen Namen erstellen. Der Zweck ist, dass ich eine zweite Version meiner App haben kann, die im App Store werbefinanziert ist.

Ich habe diese Antwort hier gefunden:

Android - Kopieren Sie ein vorhandenes Projekt mit einem neuen Namen

Aber es ist für Eclipse. Wie kann ich das in Android Studio machen?

Antworten:


66

Die Schritte in dem von Ihnen angegebenen Link sollten auch für Android Studio funktionieren. Erstellen Sie einfach eine Kopie (mit einem Dateimanager) des gesamten Modulordners und geben Sie ihm einen neuen Namen. Öffnen Sie es jetzt und verwenden SieRefactor -> Rename (Rechtsklick auf das Element, das Sie umbenennen möchten), um Ihr Modul und Paket umzubenennen.

Sehen Sie diese Einzelheiten zu Refactoring in IntelliJ / Android Studio.


Windows 10 sagt, der Dateipfad sei zu lang. Ich habe das Jubiläums-Update und habe den Gruppenrichtlinien-Editor-Trick ausgeführt, um lange Dateipfade zu bearbeiten. Es scheint, dass der Explorer noch keine langen Dateipfade verarbeiten kann. Siehe: superuser.com/questions/1114181/…
Andrew S

3
Ich habe es versucht, aber wenn ich das Projekt starte, schreibt Android Studio über meine alte App auf meinem Gerät. Ich möchte beide Apps gleichzeitig auf dem Gerät haben (zum Testen von benutzerdefinierten Chrome-Registerkarten). Wie kann ich Android Studio zwingen, beide Apps gleichzeitig auf dem Gerät zu haben?
Locksleyu

Ich habe den Basispaketordner ausgewählt und auf Refactor -> Umbenennen geklickt. Ich habe Fehler mit der Option "Paket umbenennen" erhalten. Dann habe ich die Option "Ordner umbenennen" mit Erfolg ausgeführt.
Ismail Yavuz

Muss auch die iml-Datei umgestalten und umbenennen !!!, wenn Sie dies nicht
tun

43

Wenn Sie Gradle verwenden, vergessen Sie nicht, das Attribut applicationId in der Datei app / build.gradle zu ändern .


3
Dies ist sehr wichtig, da ich vergesse, die applicationId in der Datei build.gradle zu ändern und am Ende eine App mit einem falschen Paketnamen im Play Store zu veröffentlichen
wenjiun

Dies ist eher ein Kommentar als eine tatsächliche Antwort.
Der unbekannte

Das war der Schlüssel!
Denis

39

Wie free3dom hervorhob, ist Folgendes zu tun:

  1. Erstellen Sie eine Kopie mit dem Dateimanager
  2. Bearbeiten Sie die App- build.gradleDatei manuell, um den Paketnamen zu ändern (Sie können den Dateimanager verwenden).
  3. Manuell bearbeiten AndroidManifest.xml, um den Paketnamen zu ändern.
  4. Ausführen gradle sync.
  5. Öffnen Sie das Projekt in Android Studio und überarbeiten Sie den Paketnamen.
  6. Führen Sie die Gradle-Synchronisierung erneut aus.

Das scheint ohne Probleme zu funktionieren.


9
Ich frage mich, wie Sie eine Gradle-Synchronisierung außerhalb des Android-Studios durchführen
Erdomester

1
folgte diesem Schritt, führte aber nicht Schritt 4 aus, öffnete nur Android Studio und importierte das kopierte Projekt. Löschte auch die IML-Datei aus dem kopierten Projekt, als eine neue erstellt wurde. hat super funktioniert! Vielen Dank!
Nommer

@nommer wovon .imlredest du ? ich kann eins bei project/prjectname.imlund anderes bei finden project/app/app.iml, welches muss gelöscht werden?
Hirdesh Vishwdewa

@Veeru kannst du den 5. Schritt erklären?
Hirdesh Vishwdewa

@HirdeshVishwdewa gute Frage! Ich habe es vor einiger Zeit
getan

31

Wenn Sie die neueste Version von Android Studio verwenden, können Sie sich dabei unterstützen lassen.

Hinweis: Ich habe dies nur in Android Studio 3.0 getestet.

Das Verfahren ist wie folgt:

  1. Wählen Sie in der Projektansicht (dies wird zusammen mit den Aufnahmen und der Struktur auf der linken Seite des Bildschirms angezeigt) die Option Projekt anstelle von Android .
    Der Name Ihres Projekts steht oben im Baum (neben externen Bibliotheken).
    Wählen Sie Ihr Projekt aus und gehen Sie zu Refactor -> Copy....
    Android Studio fragt Sie nach dem neuen Namen und wo Sie das Projekt kopieren möchten. Stellen Sie das gleiche bereit.

  2. Öffnen Sie nach dem Kopieren Ihr neues Projekt in Android Studio.
    Pakete werden weiterhin unter dem alten Projektnamen geführt.
    Das sind die Java-Klassenpakete, die Anwendungs-ID und alles andere, was mit dem alten Paketnamen generiert wurde.
    Das müssen wir ändern.
    Wählen Sie in der Projektansicht Android aus .
    Öffnen Sie das Java- Unterverzeichnis und wählen Sie das Hauptpaket aus.
    Dann klicken Sie mit der rechten Maustaste darauf und gehen Sie zu Refactordann Rename.
    Android Studio gibt eine Warnung aus, dass mehrere Verzeichnisse dem Paket entsprechen, das Sie umgestalten möchten.
    Klicken Sie auf Rename packageund nicht Rename directory .
    Nach diesem Schritt steht Ihr Projekt nun vollständig unter dem neuen Namen.

  3. Öffnen Sie die Datei res / values ​​/ strings.xml und ändern Sie den Namen des Projekts.
  4. Vergessen Sie nicht, Ihre Anwendungs-ID im "Gradle Build Module: App" zu ändern.
  5. Ein letzter Schritt besteht darin, das Projekt zu bereinigen und neu zu erstellen. Andernfalls wird Android Studio beim Versuch, Ihr Projekt auszuführen, darauf hinweisen, dass das APK nicht installiert werden kann (wenn Sie das vorherige Projekt ausgeführt haben).
    Also Build -> Clean projectdann Build -> Rebuild project.
    Jetzt können Sie Ihr neues geklontes Projekt ausführen.

Schritt 4 war das, was ich brauchte, um ein fehlgeschlagenes, kopiertes Projekt für die Bereitstellung zu erhalten, nachdem ich nur den Ordner kopiert hatte, den ich denke
Jim Factor

2
Wichtig: Wenn Sie Google Play-Dienste verwenden. Stellen Sie außerdem sicher, dass die Paketnamen in der Datei google-services.json aktualisiert werden.
Gihan Gamage

Danke für diese Antwort! Ein Zusatz: Ich habe auch rootProject.name in settings.gradle aktualisiert.
Alexx

16

Der Zweck ist, dass ich eine zweite Version meiner App haben kann, die im App Store werbefinanziert ist.

Derzeit ist es am besten, das Projekt nicht zu kopieren .
Sie können dies mit verschiedenen Geschmacksrichtungen in Ihrer build.gradleDatei tun .

 productFlavors {
        flavor1 {
            applicationId = "com.example.my.pkg.flavor1"
        }
        flavorAdSUpport {
            applicationId = "com.example.my.pkg.flavor2"
        }
  }

Auf diese Weise haben Sie nur eine Kopie der Dateien und können den Unterschied leicht handhaben.


14

Dies ist eine Kombination aus der Antwort von nt.bas und Schritt 9 der Antwort von Civic mit visuellen Beispielen, da ich eine Weile gebraucht habe, um herauszufinden, was beabsichtigt war, da ich neu in Android Studio bin. Es wurde in Android Studio 3.2.1 getestet.

  1. Öffnen Sie das Projekt, das Sie in Android Studio klonen möchten. (In diesem Beispiel war der alte Projektname test5und der neue Projektname war test6)

  2. Klicken Sie im linken Bereich der Dateiübersicht auf: Projekt (wo derzeit möglicherweise Android steht).

fig0

  1. Klicken Sie mit der rechten Maustaste auf das Projekt im Datei-Explorer-Bereich und klicken Sie auf Refactor> Klon.

fig1

  1. Ändern Sie den "neuen Namen" in Ihren neuen Projektnamen und klicken Sie auf "OK".

fig2

  1. Datei> Öffnen> Neues Fenster> Wählen Sie Ihr neues Projekt aus> In neuem Projektfenster öffnen. Warten Sie im neuen Fenster, bis das Endergebnis von Android Studio fertig ist / sagt: "Gradle Sync Finished".

16

17

14

  1. Klicken Sie im Dateiübersichtsfenster und mit der rechten Maustaste (RMB) auf: app.java/ <Ihr alter Projektname (nicht der Testname, nicht der androidTest, nur der leere)>

Abb8

  1. Geben Sie den neuen Namen Ihres Pakets ein und aktivieren Sie beide Häkchen. Klicken Sie auf Refactor.

fig9 fig10

  1. Klicken Sie in der unteren linken Leiste auf "Do Refactor".

fig12

  1. Öffnen Sie app / res / values ​​/ strings.xml und ändern Sie den Namen des alten Projekts (z. B. test5) in den neuen Namen des Projekts in der folgenden Zeile:

    <string name="app_name">test5</string>
    

Abb. 3

  1. Öffnen Sie Gradle scripts / build.gradle (Modul: App) und ändern Sie die Zeile in dieselbe Zeile mit Ihrem neuen Projektnamen:% fig4

    applicationId "com.example.a.test5"    
    

fig4

  1. Oben in Ihrem Codebereich wird eine gelbe Linie angezeigt, die die Gradle-Synchronisierung anfordert. Drücken Sie "Jetzt synchronisieren".

fig5

  1. Drücken Sie in der oberen Leiste auf Erstellen> Projekt bereinigen.

fig13

  1. Wenn unten links "Gradle-Build abgeschlossen" angezeigt wird, klicken Sie auf "Build> Projekt neu erstellen".

fig14

fig15

  1. Jetzt sollten Sie in der Lage sein, Ihr Projekt erneut zu kompilieren und auszuführen (falls es überhaupt funktioniert hat).

1
gute Antwort! Sie können auch Datei> Neu> Projekt importieren anstelle von Projekt öffnen in Schritt 5 oben verwenden. Das hat bei mir funktioniert.
Sasuke Uchiha

8

Ich folge diesen Schritten und es hat bisher funktioniert:

  1. Kopieren Sie den Ordner wie gewohnt und fügen Sie ihn ein.
  2. Öffnen Sie Android Studio (v3.0.1).
  3. Wählen Sie Vorhandenes Projekt öffnen.
  4. Schließen Sie die Meldung mit dem Titel "Gradle-Projekte importieren".
  5. Gehen Sie auf der Registerkarte Android auf der linken Seite zu: App -> Java -> wählen Sie den ersten Ordner (Ihren Projektordner) aus
  6. Refactor => Umbenennen ... (Umschalt + F6)
  7. Paket umbenennen, beide Optionen auswählen - Geben Sie den Namen des neuen Ordners in Kleinbuchstaben ein.
  8. Refactor machen
  9. Wählen Sie: Projekt mit Gradle-Dateien in der Symbolleiste synchronisieren.
  10. Build => Projekt bereinigen
  11. Gehen Sie zu app -> res -> values ​​-> strings.xml und ändern Sie den App-Namen in der 2. Zeile.

Wenn Sie Google Service-APIs wie Maps, Firebase usw. verwenden, müssen Sie außerdem die Dateien entfernen, die alte Paketnamenreferenzen enthalten (z. B. google_services.json in app / src). Bitte beachten Sie dies für den gesamten Vorgang.
Varun

3

Der Anhang des Git-Handbuchs für Android Developer Fundamentals Course Practicals enthält Schritte zum Kopieren und Umbenennen eines vorhandenen Projekts:

https://google-developer-training.gitbooks.io/android-developer-fundamentals-course-practicals/content/en/appendix_utilities.html#copy_project


Hat mit Android Studio 3.3 mit einem komplexen Projekt mit vielen Modulen und Abhängigkeiten hervorragend funktioniert. Vielen Dank.
Nat101

1
Dieser Link befindet sich in den letzten Zügen: "Diese Website wird am 31. Juli 2019 entfernt."
Peter Mortensen

3

Wenn Sie den Paketnamen in Android Studio überarbeiten, müssen Sie möglicherweise auf das kleine Zahnrad rechts neben dem Paket- / Android- / Projekt- / Navigator klicken und das Kontrollkästchen 'Kompakte leere mittlere Pakete' deaktivieren, um jeden Teil des Paketnamens anzuzeigen als eigenes Verzeichnis. Dann für einzelne Verzeichnisse refactor.

Dies ist wichtig, wenn Sie alle Teile des Paketnamens ändern müssen. Zum Beispiel von com.example.originalproject zu org.mydomain.newproject. Andernfalls können Sie mit der Refactor / Rename-Operation nur "originalproject" in "newproject" ändern und "com.example" unverändert lassen. Es gibt ein gutes Video, das dies zeigt: https://www.youtube.com/watch?v=dMK-RBVLeIY


2

Wenn Sie Ihr Projekt kopieren, müssen Sie auch die ursprünglichen Rest-Intermediate-Build-Dateien (someActivity $ 4.class) aus den Verzeichnissen C: ... \ AndroidStudioProjects (Projektname) \ app \ build \ intermediates \ classes \ release ... löschen. Andernfalls treten mit ziemlicher Sicherheit Fehler beim Erstellen des neuen Projekts auf, wenn Sie versuchen, das kopierte Projekt zu kompilieren. Refactoring wird dies nicht lösen.


2

Ich habe versucht, von nt.bas Antwort und Gnyrfta Antwort, die gut für mich funktioniert.

Zitat aus nt.bas Antwort :

Wenn Sie die neueste Version von Android Studio verwenden, können Sie sich dabei unterstützen lassen.

Hinweis: Ich habe dies nur in Android Studio 3.0 getestet.

Das Verfahren ist wie folgt:

  1. Wählen Sie in der Projektansicht (dies wird zusammen mit den Aufnahmen und der Struktur auf der linken Seite des Bildschirms angezeigt) die Option Projekt anstelle von Android .
    Der Name Ihres Projekts steht oben im Baum (neben externen Bibliotheken).
    Wählen Sie Ihr Projekt aus und gehen Sie zu Refactor -> Copy....
    Android Studio fragt Sie nach dem neuen Namen und wo Sie das Projekt kopieren möchten. Stellen Sie das gleiche bereit.

  2. Öffnen Sie nach dem Kopieren Ihr neues Projekt in Android Studio.
    Pakete werden weiterhin unter dem alten Projektnamen geführt.
    Das sind die Java-Klassenpakete, die Anwendungs-ID und alles andere, was mit dem alten Paketnamen generiert wurde.
    Das müssen wir ändern.
    Wählen Sie in der Projektansicht Android aus .
    Öffnen Sie das Java- Unterverzeichnis und wählen Sie das Hauptpaket aus.
    Dann klicken Sie mit der rechten Maustaste darauf und gehen Sie zu Refactordann Rename.
    Android Studio gibt eine Warnung aus, dass mehrere Verzeichnisse dem Paket entsprechen, das Sie umgestalten möchten.
    Klicken Sie auf Rename packageund nicht Rename directory .
    Nach diesem Schritt steht Ihr Projekt nun vollständig unter dem neuen Namen.

  3. Öffnen Sie die Datei res / values ​​/ strings.xml und ändern Sie den Namen des Projekts.
  4. Ein letzter Schritt besteht darin, das Projekt zu bereinigen und neu zu erstellen. Andernfalls wird Android Studio beim Versuch, Ihr Projekt auszuführen, darauf hinweisen, dass das APK nicht installiert werden kann (wenn Sie das vorherige Projekt ausgeführt haben).
    Also Build -> Clean projectdann Build -> Rebuild project.

Bis zu diesem Punkt benennen Sie nur Ihren gesamten Projektnamen um . Um den Verpackungsnamen umzubenennen, müssen Sie der gnyrfta-Antwort folgen , die wie folgt beschrieben wurde:

Wenn Sie den Paketnamen in Android Studio überarbeiten, müssen Sie möglicherweise auf das kleine Zahnrad rechts neben dem Paket- / Android- / Projekt- / Navigator klicken und das Kontrollkästchen 'Kompakte leere mittlere Pakete' deaktivieren, um jeden Teil des Paketnamens anzuzeigen als eigenes Verzeichnis. Dann für einzelne Verzeichnisse refactor.


PS: Wenn Sie eine haben

Sitzung konnte nicht abgeschlossen werden: INSTALL_FAILED_INVALID_APK: Split lib_slice_0_apk wurde mehrmals definiert

Löschen Sie einfach den Build-Ordner von appmodule und erstellen Sie das Projekt neu!

Dies wird das Problem beheben!


2

Ich benutze Android 3.3 und so hat es bei mir funktioniert:

1 - Wählen Sie die Projektansicht

2 - Klicken Sie mit der rechten Maustaste auf den Projektnamen, der sich im Stammverzeichnis des Projekts befindet, und wählen Sie die Option aus refactor -> copy . Sie werden in einem Fenster aufgefordert, den neuen Namen auszuwählen.

3 - Nach Schritt 2 erstellt Android ein neues Projekt für Sie. Sie müssen dieses neue Projekt mit dem neuen Namen öffnen

4 - Ändern Sie den Namen der App in der "string.xml", sie befindet sich in "app / res / values ​​/ string.xml".

Jetzt haben Sie es, das gleiche Projekt mit einem neuen Namen. Jetzt möchten Sie möglicherweise den Namen des Pakets ändern. Dies wird in den folgenden Schritten beschrieben

(optional) Zum Ändern des Namens des Hauptpakets

5 - Gehen Sie zu "App / Java". Es gibt drei Ordner mit demselben Namen, einen Hauptordner, einen (androidTest)und einen (test). Klicken Sie mit der rechten Maustaste auf den Hauptordner und wählen Sieformat -> rename Sie mit der . Es wird eine Warnung angezeigt, dass mehrere Verzeichnisse diesem Paket entsprechen Klicken Sie dann auf "Paket umbenennen". Wählen Sie einen neuen Namen und klicken Sie in Refactor. Nun, unter der Codeansicht, hier wird eine Refactor-Vorschau angezeigt. Klicken Sie auf "Refactor ausführen".

6 - Gehen Sie zur Option "Erstellen", klicken Sie auf "Projekt bereinigen" und dann auf "Projekt neu erstellen".

7 - Schließen Sie nun das Projekt und öffnen Sie es erneut.


1
Endlich eine Lösung, die nicht 20 Minuten dauert! Arbeitete beim ersten Versuch ohne seltsame Fehler. Für Schritt 5 habe ich gerade mein Paket umgestaltet-> umbenannt.
Schneemann

2

Wechseln Sie in den Quellordner, in dem sich Ihr Projekt befindet.

  1. Kopieren Sie das Projekt und die Vergangenheit und ändern Sie den Namen.
  2. Öffnen Sie Android Studio und aktualisieren Sie.
  3. Gehe zu ->Settings.gradle.
  4. Einschließen ':your new project name '

2

Voraussetzung und Test unter Android Studio 3.5

Stellen Sie sicher, dass Ihr altes Projekt ordnungsgemäß mit Ihrer vorhandenen Android Studio-Bibliothek funktioniert.

  1. Kopieren Sie das Projektverzeichnis und benennen Sie den Ordner in einen neuen Projektnamen um, z. B. Bramara
  2. Öffnen Sie Ihr vorhandenes neues Projekt mit Android Studio 3.5. Navigieren Sie nach Abschluss des Projekts zu 1: Projekt -> Projekt. Möglicherweise hat Ihr Projekt nur zwei Verzeichnisse, die auf den neuen Projektordner und den alten Projektordner verweisen. Schließen Sie Ihr Projekt.
  3. Bearbeiten Sie die Datei appl.iml im Verzeichnis new project -> app -> appl.iml mit dem Texteditor. Ersetzen Sie alle alten Projektnamen durch neue Projektnamen.
  4. Öffnen Sie Ihr neues Projekt erneut. Navigieren Sie zu 1: Projekt -> Projekt. Möglicherweise hat Ihr Projekt nur ein Verzeichnis.
  5. Navigieren Sie zu 1: Projekt -> Pakete. Klicken Sie mit der rechten Maustaste auf Ihre Komponente -> Refactor -> Umbenennen.
  6. Eine Warnmeldung wird angezeigt. Stellen Sie sicher, dass alle Änderungen auf den neuen Projektordner angewendet werden! Wählen Sie danach Pakete umbenennen, z. B. com.dedetok.bramara.
  7. Navigieren Sie zu 1: Projekt -> Android. Öffnen Sie die App -> Manifeste -> AndroidManifest.xml. Korrigieren Sie die Anwendungsaktivität auf den neuen Paketnamen. Ändern Sie Ihren Anwendungsnamen in einen neuen.
  8. Öffnen Sie Gradle Scripts -> build.gradle (Modul: App), ändern Sie Ihre applicationId in ein neues Projekt, z. B. com.dedetok.bramara, und synchronisieren Sie das Projekt.
  9. Bereinigen und erstellen Sie Ihr neues Projekt neu.
  10. Ihr neues Projekt kann bearbeitet / geändert werden.

Hinweis: Wenn der ADB-Lauf keine Aktivität anzeigt, bearbeiten Sie Ihre Run / Debug-Konfiguration. Das Modul sollte auf die Modulanwendung verweisen, z. B. App.


In Schritt 7 konnte ich keine App-> Manifeste finden. Also habe ich Project-> Project geöffnet und aus dem src-Ordner das Manifest geöffnet. Das Studio bat um Synchronisierung, um die Datei zu bearbeiten und war dann OK
Makkasi

1

Der EINFACHSTE (und definitiv schnellste) Weg erfordert WINRAR, 7zip oder eine ähnliche Archivierungssoftware:

  1. Suchen Sie den Projektordner im Windows Explorer - doppelklicken Sie, um diesen Ordner zu öffnen.

  2. Erstellen Sie einen neuen Ordner und nennen Sie ihn "Backup".

  3. Wählen Sie im Projektordner alle Dateien / Ordner mit Ausnahme des Ordners "Backup" aus.

  4. Klicken Sie mit der rechten Maustaste und wählen Sie "Zum Archiv hinzufügen" oder "Archiv erstellen" (der Befehl hängt von Ihrer Archivierungssoftware ab).

  5. Benennen Sie das Archiv und klicken Sie auf OK.

  6. Verschieben Sie dieses Archiv in den Ordner "Backup".

Fertig - um das Sicherungsarchiv zu öffnen, öffnen Sie den Ordner "Sicherung" und klicken Sie mit der rechten Maustaste auf die Sicherungsdatei. Wählen Sie "Extrahieren" oder erstellen Sie einen neuen Ordner, in den die Dateien extrahiert werden sollen, und klicken Sie auf "OK". Öffnen Sie dann das Projekt wie gewohnt in Android Studio usw.


0

Ich hatte folgende Probleme:

https://google-developer-training.github.io/android-developer-fundamentals-course-concepts-v2/appendix/appendix-utilities/appendix-utilities.html

auf Android Studio Version: 3.3.2

bis ich die Datei .idea / workspace.xml beendet habe.

$ cp -rv Testcopysource/ TestCopyDest
$ rm TestCopyDest/.idea/workspace.xml
$ stdio.sh & # Run Android Studio on Linux

Zuvor zeigte Android Studio immer noch auf den ursprünglichen Quellordner, und alle Umbenennungen wurden auf die ursprünglichen Quelldateien angewendet (in Testcopysource in meinem obigen Beispiel).


0

Ab Februar 2020 ist für Android Studio 3.5.3 die einfachste Antwort, die ich gefunden habe, dieses Video.

Hinweis 1: Um 01.24 Uhr wird unten die Registerkarte "Suchen" angezeigt. Klicken Sie auf "Do Refactor" und fahren Sie wie im Video fort.

Hinweis 2: Wenn Sie Java / Kotlin-Dateien "Als einfacher Text markiert" haben, müssen Sie den Paketnamen oben manuell ändern, d. H.package com.example.thisplaceneedstobemanuallyupdated

Hinweis 3: Achten Sie beim Umbenennen genau wie im Video auf Groß- und Kleinschreibung.

Hinweis 4: Wenn Sie den Projektnamen in der Titelleiste des Projektfensters aktualisieren möchten, ändern Sie ihn rootProject.name = 'YourProjectName'in der Datei " settings.gradle " im Verzeichnis " Gradle Scripts ".

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.