Skopiuj istniejący projekt pod nową nazwą w Android Studio

100

Chciałbym skopiować mój projekt Android i utworzyć nowy projekt z tych samych plików, tylko pod inną nazwą. Celem tego jest to, że mogę mieć drugą wersję mojej aplikacji, która jest obsługiwana przez reklamy w sklepie z aplikacjami.

Znalazłem tę odpowiedź tutaj:

Android - skopiuj istniejący projekt pod nową nazwą

Ale to dla Eclipse. Jak mogę to zrobić w Android Studio?

Mikrofon
źródło

Odpowiedzi:

66

Kroki w podanym łączu powinny również działać w Android Studio. Po prostu wykonaj kopię (za pomocą menedżera plików) całego folderu modułu i nadaj mu nową nazwę. Teraz otwórz go i użyj Refactor -> Rename(kliknij prawym przyciskiem myszy element, którego nazwę chcesz zmienić), aby zmienić nazwę modułu i pakietu.

Zobacz to, aby uzyskać szczegółowe informacje na temat refaktoryzacji w IntelliJ / Android Studio.

free3dom
źródło
Windows 10 mówi, że ścieżka pliku jest za długa. Mam aktualizację rocznicową i zrobiłem sztuczkę Edytora zasad grupy, aby umożliwić długie ścieżki plików. Wygląda na to, że Explorer nadal nie obsługuje długich ścieżek plików. Zobacz: superuser.com/questions/1114181/…
Andrew S
3
Próbowałem tego, ale kiedy uruchamiam projekt, Android Studio pisze na mojej starej aplikacji na moim urządzeniu. Chcę mieć obie aplikacje jednocześnie na urządzeniu (do testowania niestandardowych zakładek Chrome). Jak mogę zmusić Android Studio do jednoczesnego posiadania obu aplikacji na urządzeniu?
Locksleyu
Wybrałem podstawowy folder pakietu i kliknąłem Refaktoryzuj -> Zmień nazwę, otrzymałem błędy z opcją "zmiana nazwy pakietu", a następnie z powodzeniem wykonałem opcję "zmiana nazwy folderu".
Ismail Yavuz
Konieczne jest również refaktoryzacja i zmiana nazwy pliku de iml !!!, jeśli tego nie zrobisz, to nie zadziała
JoeCoolman
43

Jeśli używasz Gradle - nie zapomnij zmienić atrybutu applicationId w pliku app / build.gradle .

Sergii
źródło
3
Jest to bardzo ważne, ponieważ zapomniałem zmodyfikować applicationId w pliku build.gradle i ostatecznie opublikowałem aplikację z nieprawidłową nazwą pakietu w Sklepie Play
wenjiun
To bardziej komentarz niż rzeczywista odpowiedź.
The Unknown Dev
To był klucz!
Denis
39

Jak wskazał free3dom , oto co należy zrobić:

  1. Utwórz kopię za pomocą menedżera plików
  2. Ręcznie edytuj build.gradleplik aplikacji, aby zmienić nazwę pakietu (możesz użyć menedżera plików).
  3. Edytuj ręcznie, AndroidManifest.xmlaby zmienić nazwę pakietu.
  4. Biegnij gradle sync.
  5. Otwórz projekt w Android Studio i refaktoryzuj nazwę pakietu.
  6. Uruchom ponownie synchronizację gradle.

Wydaje się, że działa bez żadnych problemów.

Veeru
źródło
9
Zastanawiam się, jak robisz synchronizację gradle poza studiem Androida
erdomester
1
wykonałem to, ale nie wykonałem kroku 4, po prostu otworzyłem Android Studio i zaimportowałem skopiowany projekt. Usunięto również plik .iml ze skopiowanego projektu, ponieważ został utworzony nowy. działało świetnie! dzięki!
nommer
@nommer, o którym .imlmówisz? mogę znaleźć jedno na, project/prjectname.imla drugie pod adresem project/app/app.iml, które należy usunąć?
Hirdesh Vishwdewa
@Veeru, czy możesz wyjaśnić piąty krok?
Hirdesh Vishwdewa
@HirdeshVishwdewa dobre pytanie! zrobiłem to jakiś czas temu, którego nie pamiętam, ale zgaduję, że to projekt / *. iml
nommer
31

Jeśli używasz najnowszej wersji Android Studio, możesz pozwolić, aby ci w tym pomogła.

Uwaga: przetestowałem to tylko w Android Studio 3.0.

Procedura wygląda następująco:

  1. W widoku projektu (wraz z przechwytywaniem i strukturą po lewej stronie ekranu) wybierz Project zamiast Android .
    Nazwa twojego projektu będzie wierzchołkiem drzewa (obok bibliotek zewnętrznych).
    Wybierz swój projekt, a następnie przejdź do Refactor -> Copy....
    Android Studio zapyta Cię o nową nazwę i miejsce, w którym chcesz skopiować projekt. Zapewnij to samo.

  2. Po zakończeniu kopiowania otwórz nowy projekt w Android Studio.
    Pakiety będą nadal znajdować się pod starą nazwą projektu.
    To są pakiety klas Java, identyfikator aplikacji i wszystko inne, co zostało wygenerowane przy użyciu starej nazwy pakietu.
    Musimy to zmienić.
    W widoku projektu wybierz Android .
    Otwórz podkatalog java i wybierz pakiet główny.
    Następnie kliknij go prawym przyciskiem myszy i przejdź do Refactortego Rename.
    Android Studio wyświetli ostrzeżenie informujące, że pakiet, który chcesz refaktoryzować, odpowiada wielu katalogom.
    Kliknij Rename packagei nie Rename directory .
    Po tym kroku Twój projekt jest teraz całkowicie pod nową nazwą.

  3. Otwórz plik res / values ​​/ strings.xml i zmień nazwę projektu.
  4. Nie zapomnij zmienić identyfikatora aplikacji w „Gradle Build Module: app”.
  5. Ostatnim krokiem jest wyczyszczenie i odbudowanie projektu, w przeciwnym razie podczas próby uruchomienia projektu Android Studio powie, że nie może zainstalować APK (jeśli uruchomiłeś poprzedni projekt).
    Więc Build -> Clean projectpotem Build -> Rebuild project.
    Teraz możesz uruchomić swój nowy sklonowany projekt.
nt.bas
źródło
Krok 4 jest to, co potrzebne, aby uzyskać Deploy niepowodzeniem, po prostu kopiowane projektu kopiując folder myślę
Jim Factor
2
Ważne: jeśli korzystasz z usług Google Play. Pamiętaj też, aby zaktualizować nazwy pakietów w pliku google-services.json.
Gihan Gamage,
Dzięki za tę odpowiedź! Jeden dodatek: zaktualizowałem również rootProject.name w settings.gradle.
alexx
16

Celem tego jest to, że mogę mieć drugą wersję mojej aplikacji, która jest obsługiwana przez reklamy w sklepie z aplikacjami.

Obecnie najlepszym sposobem na to jest bez kopiowania projektu.
Możesz to zrobić używając różnych smaków w swoim build.gradlepliku.

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

W ten sposób masz tylko kopię plików i możesz łatwo poradzić sobie z różnicą.

Gabriele Mariotti
źródło
14

To jest połączenie odpowiedzi nt.bas i kroku 9 odpowiedzi Civic z przykładami wizualnymi, ponieważ zajęło mi trochę czasu, aby dowiedzieć się, co było zamierzone, ponieważ jestem nowy w Android Studio. Został przetestowany w Android Studio 3.2.1.

  1. Otwórz projekt, który chcesz sklonować w Android Studio. (W tym przykładzie stara nazwa projektu to, test5a nowa nazwa to test6)

  2. W lewym okienku przeglądu plików kliknij: Projekt (gdzie obecnie może być napisany android).

rys0

  1. Kliknij prawym przyciskiem myszy projekt w panelu eksploratora plików i kliknij refaktoryzuj> klonuj.

rys1

  1. Zmień „New name” na nową nazwę projektu i kliknij OK.

rys2

  1. Plik> otwórz> Nowe okno> Wybierz nowy projekt> Otwórz w nowym oknie projektu. W nowym oknie poczekaj, aż dolna linia Android Studio zakończy się / powie: „Gradle Sync Finished”.

16

17

14

  1. W okienku przeglądu plików i kliknij prawym przyciskiem myszy (PPM) na: app.java/ <nazwa twojego starego projektu (nie testowa, nie androidTestowa, tylko pusta)>

rys8

  1. Wprowadź nową nazwę pakietu i zaznacz oba znaczniki wyboru, kliknij refaktoryzację.

rys9 rys10

  1. W lewym dolnym pasku kliknij „Do refactor”.

rys12

  1. Otwórz app / res / values ​​/ strings.xml i zmień nazwę starego projektu (np. Test5) na nową nazwę projektu w linii:

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

rys3

  1. Otwórz skrypty Gradle / build.gradle (moduł: aplikacja) i zmień wiersz na ten sam wiersz z nazwą nowego projektu:% fig4

    applicationId "com.example.a.test5"    
    

rys4

  1. U góry okienka kodu pojawi się żółta linia z żądaniem synchronizacji gradle. Naciśnij „synchronizuj teraz”.

rys5

  1. na górnym pasku naciśnij budowanie> Wyczyść projekt.

rys13

  1. Jeśli w lewym dolnym rogu pojawi się napis „Gradle build finish”, kliknij „Build> Rebuild project”.

rys14

rys15

  1. Teraz powinieneś być w stanie ponownie skompilować i uruchomić projekt (jeśli zadziałał w pierwszej kolejności).
w
źródło
1
świetna odpowiedź! można również użyć plik> nowy> importuj projekt zamiast otwierania projektu w kroku 5 powyżej. To, co mi pomogło.
Sasuke Uchiha
8

Wykonuję następujące kroki i jak na razie działa:

  1. Skopiuj i wklej folder tak, jak poprzednio.
  2. Otwórz Android Studio (v3.0.1).
  3. Wybierz Otwórz istniejący projekt.
  4. Zamknij komunikat, który pojawi się z tytułem: „Importuj projekty Gradle”.
  5. Po lewej stronie na karcie Android przejdź do: app -> java -> wybierz pierwszy folder (folder projektu)
  6. Refactor => Zmień nazwę ... (Shift + F6)
  7. Zmień nazwę pakietu, wybierz obie opcje - Wpisz nazwę nowego folderu małymi literami.
  8. Czy Refactor
  9. Wybierz: Synchronizuj projekt z plikami Gradle na pasku narzędzi.
  10. Build => Wyczyść projekt
  11. Przejdź do app -> res -> values ​​-> strings.xml i zmień nazwę aplikacji w drugiej linii.
Obywatelski
źródło
Ponadto, jeśli korzystasz z interfejsów API usług Google, takich jak Mapy, Firebase itp. ... Pamiętaj, aby usunąć pliki, które mają odniesienia do starych nazw pakietów (np. Google_services.json w app / src). Proszę odnieść się do całej procedury.
varun
3

Dodatek do gitbooka z podstaw dla programistów Androida zawiera instrukcje kopiowania i zmiany nazwy istniejącego projektu:

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

Bryon Nicoson
źródło
Świetnie działał dla mnie z Android Studio 3.3, ze złożonym projektem, który ma wiele modułów i zależności. Dzięki.
nat101
1
Ten link znajduje się na ostatniej odnodze: „Ta witryna zostanie usunięta 31 lipca 2019 r.”
Peter Mortensen
3

Podczas refaktoryzacji nazwy pakietu w Android Studio może być konieczne kliknięcie małego kółka zębatego w prawo obok pakietu / android / projekt / etc - nawigator i odznaczenie opcji „kompaktowe puste środkowe pakiety”, aby zobaczyć każdą część nazwy pakietu jako własny katalog. Następnie dla poszczególnych katalogów wykonaj refaktoryzację.

Jest to ważne, jeśli chcesz zmienić wszystkie części nazwy pakietu. Na przykład z com.example.originalproject do org.mydomain.newproject. W przeciwnym razie operacja refaktoryzacji / zmiany nazwy pozwoli tylko zmienić „oryginalny projekt” na „nowyproject” i pozostawi „com.example” bez zmian. Jest dobry film, który to pokazuje: https://www.youtube.com/watch?v=dMK-RBVLeIY

gnyrfta
źródło
2

Podczas kopiowania projektu konieczne będzie również usunięcie oryginalnych pozostałych plików pośredniej kompilacji (someActivity $ 4.class) z katalogów C: ... \ AndroidStudioProjects (nazwa_projektu) \ app \ build \mediates \ classes \ release .... W przeciwnym razie prawie na pewno wystąpią błędy kompilacji dla nowego projektu, jeśli spróbujesz skompilować skopiowany projekt. Refaktoryzacja tego nie rozwiąże.

Mark Rossmiller
źródło
2

Próbowałem z odpowiedzi nt.bas i odpowiedzi gnyrfta, która działa dobrze dla mnie.

Cytując z nt.bas odpowiedź :

Jeśli używasz najnowszej wersji Android Studio, możesz pozwolić, aby ci w tym pomogła.

Uwaga: przetestowałem to tylko w Android Studio 3.0.

Procedura wygląda następująco:

  1. W widoku projektu (wraz z przechwytywaniem i strukturą po lewej stronie ekranu) wybierz Project zamiast Android .
    Nazwa twojego projektu będzie wierzchołkiem drzewa (obok bibliotek zewnętrznych).
    Wybierz swój projekt, a następnie przejdź do Refactor -> Copy....
    Android Studio zapyta Cię o nową nazwę i miejsce, w którym chcesz skopiować projekt. Zapewnij to samo.

  2. Po zakończeniu kopiowania otwórz nowy projekt w Android Studio.
    Pakiety będą nadal znajdować się pod starą nazwą projektu.
    To są pakiety klas Java, identyfikator aplikacji i wszystko inne, co zostało wygenerowane przy użyciu starej nazwy pakietu.
    Musimy to zmienić.
    W widoku projektu wybierz Android .
    Otwórz podkatalog java i wybierz pakiet główny.
    Następnie kliknij go prawym przyciskiem myszy i przejdź do Refactortego Rename.
    Android Studio wyświetli ostrzeżenie informujące, że pakiet, który chcesz refaktoryzować, odpowiada wielu katalogom.
    Kliknij Rename packagei nie Rename directory .
    Po tym kroku Twój projekt jest teraz całkowicie pod nową nazwą.

  3. Otwórz plik res / values ​​/ strings.xml i zmień nazwę projektu.
  4. Ostatnim krokiem jest wyczyszczenie i odbudowanie projektu, w przeciwnym razie podczas próby uruchomienia projektu Android Studio powie, że nie może zainstalować APK (jeśli uruchomiłeś poprzedni projekt).
    Więc Build -> Clean projectpotem Build -> Rebuild project.

Do tego momentu zmieniasz tylko nazwę całego projektu . Aby zmienić nazwę opakowania, należy postępować zgodnie z odpowiedzią gnyrfta opisaną jako:

Podczas refaktoryzacji nazwy pakietu w Android Studio może być konieczne kliknięcie małego kółka zębatego w prawo obok pakietu / android / projekt / etc - nawigator i odznaczenie opcji „kompaktowe puste środkowe pakiety”, aby zobaczyć każdą część nazwy pakietu jako własny katalog. Następnie dla poszczególnych katalogów wykonaj refaktoryzację.


PS: Jeśli masz

Nie udało się sfinalizować sesji: INSTALL_FAILED_INVALID_APK: Split lib_slice_0_apk został zdefiniowany wiele razy

Po prostu usuń folder kompilacji z appmodule i odbuduj projekt!

To rozwiąże problem!

Mukyuu
źródło
2

Używam Androida 3.3 i tak to u mnie zadziałało:

1 - Wybierz widok projektu

2 - Kliknij prawym przyciskiem myszy nazwę projektu, która znajduje się w katalogu głównym projektu i wybierz opcję refactor -> copy, pojawi się okno umożliwiające wybranie nowej nazwy.

3 - Po kroku 2, Android utworzy dla Ciebie nowy projekt, musisz otworzyć ten nowy projekt z nową nazwą

4 - Zmień nazwę aplikacji w „string.xml”, jest w „app / res / values ​​/ string.xml”

Teraz masz to, ten sam projekt z nową nazwą. Teraz możesz zmienić nazwę pakietu, jest to opisane w poniższych krokach

(opcjonalnie) Aby zmienić nazwę pakietu main

5 - przejdź do "app / java", będą trzy foldery o tej samej nazwie, główny, (androidTest)i (test), kliknij prawym przyciskiem myszy główny i wybierz format -> rename, pojawi się ostrzeżenie, że wiele katalogów odpowiada temu pakietowi , a następnie kliknij „Zmień nazwę pakietu”. Wybierz nową nazwę i kliknij refaktoryzację. Teraz, poniżej widoku kodu, będzie podgląd refaktoryzacji, kliknij „Do refactor”

6 - Przejdź do opcji „buduj”, kliknij „Wyczyść projekt”, a następnie „Przebuduj projekt”.

7 - Teraz zamknij projekt i otwórz go ponownie.

vinicius de novaes
źródło
1
Nareszcie rozwiązanie, które nie zajmuje 20 minut! Działał przy pierwszej próbie bez żadnych dziwnych błędów. W kroku 5 po prostu dokonałem refaktoryzacji -> zmieniłem nazwę mojego pakietu.
Snowman
2

Przejdź do folderu źródłowego, w którym znajduje się Twój projekt.

  1. Skopiuj projekt i przeszłość i zmień nazwę.
  2. Otwórz Android Studio i odśwież.
  3. Idź do ->Settings.gradle.
  4. Zawierać ':your new project name '
Bassem Qoulta
źródło
2

Wymagania i testy na Android Studio 3.5

Upewnij się, że stary projekt działa poprawnie z istniejącą biblioteką Android Studio.

  1. Skopiuj katalog projektu i zmień nazwę folderu na nową nazwę projektu, np. Bramara
  2. Otwórz istniejący nowy projekt za pomocą Android Studio 3.5. Po zakończeniu otwierania projektu przejdź do 1: Projekt -> Projekt. Możesz zobaczyć, że twój projekt ma tylko dwa katalogi wskazujące na nowy folder projektu i stary folder projektu. Zamknij swój projekt.
  3. Edytuj appl.iml w katalogu nowy projekt -> app -> appl.iml za pomocą edytora tekstu. Zastąp wszystkie stare nazwy projektów nową nazwą projektu.
  4. Otwórz ponownie swój istniejący nowy projekt. Przejdź do 1: Projekt -> Projekt. Możesz zobaczyć, że twój projekt ma tylko jeden katalog.
  5. Przejdź do 1: Projekt -> Pakiety. kliknij prawym przyciskiem myszy swój komponent -> Refaktoryzuj -> Zmień nazwę.
  6. Pojawi się komunikat ostrzegawczy. Upewnij się, że wszystkie zmiany zostaną zastosowane do nowego folderu projektu! Następnie wybierz Zmień nazwę pakietów, np. Com.dedetok.bramara.
  7. Przejdź do 1: Projekt -> Android. Otwórz aplikację -> manifesty -> AndroidManifest.xml. Napraw aktywność aplikacji na nową nazwę pakietu. Zmień nazwę aplikacji na nową.
  8. Otwórz Gradle Scripts -> build.gradle (Module: app), zmień applicationId na nowy projekt, np. Com.dedetok.bramara i zsynchronizuj projekt.
  9. Wyczyść i odbuduj swój nowy projekt.
  10. Twój nowy projekt jest gotowy do edycji / zmiany.

Uwaga: jeśli nie znaleziono działania adb pokazującego aktywność, zmień konfigurację uruchamiania / debugowania. Moduł powinien wskazywać na aplikację modułu, np. App.

Dedetok
źródło
W kroku 7 nie mogłem znaleźć aplikacji-> manifesty. W ten sposób otworzyłem Project-> Project iz folderu src otworzyłem manifest. Studio poprosiło o synchronizację w celu edycji pliku, a następnie było OK
makkasi
1

NAJŁATWIEJSZY (i zdecydowanie najszybszy) sposób wymaga WINRAR, 7zip lub podobnego oprogramowania do archiwizacji:

  1. Znajdź folder projektu w eksploratorze Windows - kliknij dwukrotnie, aby otworzyć ten folder.

  2. Utwórz nowy folder i nazwij go „Kopia zapasowa”.

  3. Będąc nadal w folderze projektu, wybierz wszystkie pliki / foldery z wyjątkiem folderu „backup”.

  4. Kliknij prawym przyciskiem myszy i wybierz „dodaj do archiwum” lub „utwórz archiwum” (polecenie będzie różne w zależności od używanego oprogramowania do archiwizacji)

  5. Nazwij archiwum i kliknij OK.

  6. Przenieś to archiwum do folderu „Kopia zapasowa”.

Gotowe - aby otworzyć archiwum kopii zapasowej, otwórz folder „Kopia zapasowa” i kliknij prawym przyciskiem myszy plik kopii zapasowej. Wybierz „Wypakuj” lub utwórz nowy folder, do którego zostaną wyodrębnione pliki i naciśnij „OK”, a następnie otwórz projekt tak, jak zwykle w Android Studio itp.

Tulio Perez
źródło
0

Miałem problemy z tym:

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

w wersji Android Studio: 3.3.2

dopóki nie zabiłem pliku .idea / workspace.xml.

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

Wcześniej Android Studio nadal wskazywał na oryginalny folder źródłowy, a wszystkie zmiany nazw zostały zastosowane do oryginalnych plików źródłowych (w ramach Testcopysource w moim przykładzie powyżej).

daveb
źródło
0

Od lutego 2020 r. Dla Android Studio 3.5.3 najprostszą odpowiedzią, jaką znalazłem, jest ten film.

Uwaga 1: O 01.24 zakładka „Znajdź” pojawi się poniżej. Kliknij „Do Refactor” i kontynuuj jak na filmie.

Uwaga 2: Jeśli masz jakieś pliki Java / Kotlin „Oznaczone jako zwykły tekst”, musisz ręcznie zmodyfikować nazwę pakietu u góry, tj.package com.example.thisplaceneedstobemanuallyupdated

Uwaga 3: Uważaj na wielkość liter podczas zmiany nazwy, tak jak w filmie.

Uwaga 4: Jeśli chcesz zaktualizować nazwę projektu na pasku tytułu okna projektu, zmodyfikuj plik rootProject.name = 'YourProjectName'settings.gradle ” w katalogu „ Gradle Scripts ”.

Xfce4
źródło