Jak zmienić nazwy pakietów w nowym IDE Android Studio, opartym na IntelliJ IDEA?
Czy w zestawie jest automatyczne refaktoryzacja?
Chcę dokonać masowej refaktoryzacji, ale nie wiem jak. Pracowałem dwa lata z Eclipse, aw Eclipse jest to operacja jednym kliknięciem.
android-studio
ramzixp
źródło
źródło
Odpowiedzi:
W Android Studio możesz to zrobić:
Na przykład, jeśli chcesz zmienić
com.example.app
namy.awesome.game
, to:W okienku projektu kliknij małą ikonę koła zębatego ( )
Odznacz / Odznacz
Compact Empty Middle Packages
opcjęTwój katalog pakietów zostanie teraz podzielony na poszczególne katalogi
Wybierz indywidualnie każdy katalog, którego nazwę chcesz zmienić, i:
Refactor
Rename
Rename Package
zamiast Zmień nazwę katalogucom
w Android Studio może zostać wyświetlone ostrzeżenie. W takim przypadku wybierz Zmień nazwę wszystkichTeraz otwórz plik kompilacji Gradle (
build.gradle
- zwykleapp
lubmobile
). ZaktualizujapplicationId
wdefaultConfig
do nowej nazwy pakietu i synchronizacji stopniowania, jeśli nie została jeszcze zaktualizowana automatycznie:Może być konieczna zmiana
package=
atrybutu w manifeście.Oczyść i odbuduj.
Gotowy! W każdym razie Android Studio musi uprościć ten proces.
źródło
com.example.test
do,com.example
a następnie usuńcom.example.test
.Inną dobrą metodą jest: Najpierw utwórz nowy pakiet o żądanej nazwie, klikając prawym przyciskiem myszy folder Java → Nowy → Pakiet .
Następnie wybierz i przeciągnij wszystkie swoje klasy do nowego pakietu. Android Studio wszędzie zmieni nazwę pakietu.
Na koniec usuń stary pakiet.
Gotowy.
Bardzo ważne:
Jeśli używasz tej metody, musisz ręcznie zmienić plik AndroidManifest.xml i build.gradle na nowy pakiet.
źródło
Zmiana identyfikatora aplikacji (która jest teraz niezależna od nazwy pakietu) może być wykonana bardzo łatwo w jednym kroku. Nie musisz dotykać AndroidManifest. Zamiast tego wykonaj następujące czynności:
Uwaga: nie zmieni to nazwy pakietu. Oddzielenie nazwy pakietu i identyfikatora aplikacji wyjaśniono tutaj: http://tools.android.com/tech-docs/new-build-system/applicationid-vs-packagename
źródło
com.example.sample
docom.example
korzystania z innych odpowiedziPodejście zastosowane przeze mnie do zmiany nazwy nazwy pakietu jest proste:
Krok 1 : Wybierz opcję Projekt z menu po lewej stronie Android Studio
Krok 2 : Kliknij prawym przyciskiem myszy Java i dodaj nowy pakiet i ustaw żądaną nazwę pakietu
Krok 3 : Wprowadź nową nazwę pakietu
Krok 4 : Skopiuj wszystkie pliki ze starego pakietu i wklej do nowego pakietu
Krok 5 : Zmień nazwę nazwy pakietu w pliku manifestu
Krok 6 : Zmień nazwę pakietu w pliku build.gradle
Krok 7 : Następnie kliknij stary pakiet prawym przyciskiem myszy i usuń go wraz ze wszystkimi danymi, a także usuń ten katalog
Krok 8 : Następnie odbuduj swój projekt
Krok 9 : Następnie znajdziesz kilka błędów starej nazwy pakietu importu w swoim projekcie Wybierz nazwę starego pakietu w dowolnym pliku i naciśnij CTRL + Shift + R i wprowadź nową nazwę pakietu w polu zamień, a następnie naciśnij znajdź
Krok 10 : Następnie pojawi się wyskakujące okienko, jak poniżej i wybierz opcję Wszystkie pliki z niego
Krok 11 : Ponownie przebuduj projekt, bingo nazwa pakietu projektu została zmieniona :)
źródło
Umieść kursor w nazwie pakietu, jak pokazano poniżej. Nie wybieraj go, po prostu umieść.
Następnie naciśnij Shift+ F6pojawi się okno wyskakujące, jak pokazano poniżej, wybierz Zmień nazwę pakietu .
Wpisz swoją nową nazwę i wybierz Refaktoryzuj . (Uwaga: ponieważ mój kursor jest ustawiony na „coś”, zmienia się tylko nazwa czegoś).
To już koniec.
źródło
Kliknij pakiet prawym przyciskiem myszy w panelu projektu .
Wybierz Refaktoryzuj -> Zmień nazwę z menu kontekstowego.
źródło
Otwórz plik:
aplikacja → manifesty → AndroidManifest.xml
Podświetl każdą część nazwy pakietu, którą chcesz zmodyfikować (nie zaznaczaj całej nazwy pakietu), a następnie:
Wykonaj te kroki w każdej części nazwy pakietu.
Otwórz (skrypt skryptu) >> (build.gradle (moduł: aplikacja))
i zaktualizuj applicationId do nazwy pakietu
Otwórz menu (kompilacja) i wybierz (Odbuduj projekt).
źródło
IntelliJ IDEA ma opcję o nazwie „Compact Empty Middle Packages”. Wybierz ikonę opcji projektu karcie i wyłącz / aktywuj ją.
Zobacz: Jak mogę zmienić nazwę pakietu najwyższego poziomu w IntelliJ IDEA?
źródło
Wybierz pakiet, który zostanie refaktoryzowany. Refaktoryzuj → Przenieś → „Przenieś xxx do nowej paczki” .
źródło
Widziałem najczęściej głosowane odpowiedzi, ale zauważyłem, że jest trochę inaczej, staram się wykonać najbardziej kompletny samouczek.
W Android Studio kliknij ikonę koła zębatego ( ), a następnie wybierz opcję:,
"Compact Empty Middle Packages"
aby zobaczyć foldery rozdzielone w widoku drzewa.Teraz wybierz folder, kliknij prawy przycisk, aby otworzyć menu kontekstowe, wybierz,
Refactor
a następnieRename
Zostaniesz poproszony o ponowne przesłanie paczki:
Następnie okno pokaże zbieżności wewnątrz proyect, wybierz
"Do Refactor"
:Nie musimy ręcznie zmieniać plików AndroidManifest.xml ani build.gradle, refaktoryzacja pakietu wykona zadanie !.
źródło
Jeśli nazwa twojego pakietu jest oddzielona więcej niż dwiema kropkami, powiedz
com.hello.world
i ponadto, nie wstawiłeś nic docom/
icom/hello/
. Wszystkie twoje klasy wkładającom/hello/world/
, możesz wykonać następujące kroki, aby refaktoryzować nazwy pakietów w Android Studio lub IntelliJ:com/
,com/hello/
). Można to osiągnąć, najpierw dodając dwa pliki do pakietu com.hello.world, powiedzmynastępnie zmodyfikuj je, przenosząc odpowiednio do com i com.hello. Zobaczysz com i com.hello siedzące tam w Projekcie (
Alt+1
lubCommand+1
skrót), a zmiana nazw katalogów refaktoryzacja czeka tam, jak się spodziewałeś.Refaktoryzacja, aby zmienić nazwę jednego lub więcej z tych katalogów, aby osiągnąć swój cel. Jedyną rzeczą, na którą powinieneś tutaj zwrócić uwagę, jest to, że musisz wybrać katalogi, a nie Pakiety, gdy pojawi się okno dialogowe.
Jeśli masz dużo klas w swoim projekcie, poczekaj chwilę, aż poczujesz automatyczne skanowanie i zmianę nazwy.
Poza tym musisz zmienić nazwę pakietu w pliku AndroidManifest.xml, tak myślę, aby inne nazwy w tym pliku mogły skorzystać z prefiksu.
[TAKŻE] może być konieczne zastąpienie wszystkich
com.hello.world.R
nowymiXXX.XXX.XXX.R
(Command+Shift+R
w skrócie)Przebuduj i uruchom swój projekt, aby zobaczyć, czy działa. I użyj „Znajdź na ścieżce”, aby znaleźć inne nazwy bezdotykowe, których nazwę chcesz zmienić.
źródło
Pamiętaj, aby przejść do wspaniałej odpowiedzi Sheharyara . Jest tak wiele odpowiedzi i komentarzy, które następują po nim, że łatwo byłoby się pomylić i poddać, ale nie . Ta odpowiedź działa .
Krótko mówiąc, robisz trzy rzeczy :
(1) Odznacz
Compact Empty Middle Packages
.(2),
Refactor
a następnieRename
każdy stary węzeł katalogu, wybierającChange Package
( nieChange Directory
), aby dopasować nazwę nowego pakietu. (Pamiętaj, aby zrobić podgląd zmian.)(3) Edytuj
build.gradle
plik iAPPLICATION_ID
dopasuj nazwę nowego pakietu.źródło
Zaktualizowana odpowiedź: maj 2015 r
OK Miałem problemy z klonowaniem i zmianą nazw projektów w Android Studio, ale w końcu udało mi się to. Oto kroki, które należy wykonać:
Otóż to...
źródło
Znalazłem łatwiejsze rozwiązanie tego problemu, które zmieniło również wygenerowany import
com.test.testpackagechange.R
i zajmuje tylko około minuty.Pierwszym krokiem jest otwarcie Android Studio i otwarcie okna zastępowania wszystkich (Mac: cmd + shift + R, Windows, zakładam: ctrl + shift + R). Wpisz swoją starą nazwę pakietu i nazwę poniżej swojej nowej paczki. Kliknij Znajdź. Może to chwilę potrwać, ponieważ przegląda również wygenerowane elementy. Jeśli ma ponad 1000 trafień, po prostu kliknij Kontynuuj.
Po wykonaniu tej czynności naciśnij przycisk Zamień wszystko, aby zastąpić starą nazwę pakietu nową.
Teraz zamknij Android Studio i przejdź do Findera na Macu lub Windows Explorera na Windowsie. Zmień nazwę folderów na nową nazwę pakietu, tak jak poniżej:
Teraz ponownie otwórz Android Studio. Gradle zostanie zsynchronizowany, a nazwa pakietu powinna zostać zmieniona na nową.
Uważam, że jest to najłatwiejszy i obejmujący wszystkie obszary, takie jak wygenerowane pliki.
źródło
Częstym błędem, jaki można popełnić, jest to, że nie można zmienić nazwy struktury pakietu, tzn. Nie można zmienić com.name.android na com.Renamed.android, gdy próbuje się zmodyfikować w com.name.android poziomie .
Aby mieć tę samą pożądaną zmianę, przejdź o jeden poziom wyżej, tj. Com.name, a tutaj po refaktoryzacji zmień ją na Renamed . To zawsze będzie działać.
źródło
Znalazłem inny sposób, który działa lub dodatkowy krok do niektórych odpowiedzi tutaj, szczególnie jeśli chcesz również zmienić domenę. Działa w Android Studio 1.4. Oto co zrobiłem:
build.gradle
plik aplikacji i zmień identyfikator aplikacji w defaultConfig na taką samą nazwę jak w manifeście i odbuduj projekt.Na przykład, jeśli chcesz zmienić nazwę „com.example.app” na „com.YourDomain.app”, otwórz plik pod pakietem, którego nazwę chcesz zmienić, w menu nawigacyjnym pakietu ustaw kursor na „example” część domeny i naciśnij Shift+ F6i zmień nazwę pakietu na „YourDomain”.
źródło
Nazwa pakietu zostanie zmieniona ze wszystkich plików Java i pliku manifestu. Musisz ręcznie zmienić nazwę pakietu z
build.gradle
.źródło
Zmień nazwę pakietu
Aby zmienić nazwę nazwy pakietu, wystarczy przejść do
AndroidManifest.xml
pliku i umieścić kursor myszy przed częścią nazwy pakietu, którą chcesz zmienić.Kliknij prawym przyciskiem myszy> Refaktoryzuj> Zmień nazwę
W nowym oknie naciśnij Zmień nazwę pakietu
Zmień nazwę i naciśnij Refaktoryzuj
… I naciśnij Do Refactor na dole.
Nazwa pakietu zwykle ma format com.domain.appname, w tym przykładzie zmieniliśmy część nazwy aplikacji, ale możesz wykonać te same kroki dla domeny.
Gotowy! Zmieniłeś nazwę swojego pakietu!
źródło
Wypróbowałem dwa najlepiej oceniane rozwiązania, ale znalazłem pewne problemy, mimo że oba działają do pewnego stopnia.
Po kilku eksperymentach stwierdziłem, że następująca metoda działa dla mnie dobrze.
Jeśli potrzebujesz tylko zmienić ostatnią część nazwy pakietu, skorzystaj z metody opisanej przez GreyBeardedGeek, a mianowicie
Kliknij pakiet prawym przyciskiem myszy w panelu Projekt. Wybierz Refaktoryzuj -> Zmień nazwę z menu kontekstowego
Jeśli chcesz zmienić nazwę całego pakietu, wykonaj następujące czynności.
Kliknij pakiet prawym przyciskiem myszy w panelu Projekt. Wybierz Refaktoryzuj -> Przenieś z menu kontekstowego
Spowoduje to utworzenie nowego folderu pakietu (w razie potrzeby), ale zachowa ostatnią część nazwy pakietu, jak poprzednio. Jeśli chcesz zmienić ostatnią część, odpowiednio zmień nazwę.
Zauważ też, że może być konieczne zmodyfikowanie nazw pakietów w np. Build.gradle, manifest i / lub dowolnych plikach zasobów xml, a nawet w kodzie, jeśli są zapisane na stałe. Po tym wszystkim, w razie potrzeby wykonaj projekt Sync / Clean / Rebuild.
źródło
Jak zmienić nazwę
com.example.app
nacom.android.app
:w pakiecie
com.example.app
wybierz przykładShift + F6
wybierać
rename package
zmień nazwę przykładu na android
potwierdzać
do refactor
źródło
Kliknij pakiet prawym przyciskiem myszy -> refaktoryzuj i zmień nazwę.
Możesz to również zmienić w manifeście. Czasami po zmianie nazwy pakietu, ale po utworzeniu pliku .apk wyświetlana jest inna nazwa pakietu. W tym czasie zaznacz „applicationId” w pliku build.gradle .
źródło
Polecam używać Sublime Text (lub Notepad ++ ). Zamień com.one.lastname -> com.two.newname i com / one / lastname -> com / two / newname w ... \ Projects [MyProject]. i nie zapomnij zmienić nazwy ... \ Projects \ MyProject \ app \ src \ main \ java \ com \ one \ lastname, ... \ Projects \ MyProject \ app \ src \ test \ java \ com \ one \ lastname i ... \ Projekty \ MójProjekt \ aplikacja \ src \ androidTest \ java \ com \ one \ nazwisko!
To wszystko:)
źródło
Uważam, że to, czego szukasz, to Refactor> Move. Możesz także nacisnąć klawisz F6.
Otrzymasz dwa wyskakujące okienka. Upewnij się, że wybrałeś zmienić nazwę pakietu na obu. Następnie pojawi się wyskakujące okienko z nazwą nowego pakietu.
Pamiętaj, że jeśli nazwa pakietu to na przykład com.example.android.projectname, to pozwoli Ci zmienić com.example.android na coś innego.
Jeszcze jedna rzecz, zaktualizuje to również applicationId w twoim build.gradle. Upewnij się tylko, że pola wyboru „szukaj w komentarzach i ciągach” oraz „szukaj wystąpień tekstu” są zaznaczone, aby działało.
źródło
Szybki i łatwy sposób:
1- otwarty
MainActivity.java
lub dowolny dostępny plik Java.U góry znajduje się deklaracja pakietu, taka jak:
wybierz część opakowania, którą chcesz zmienić, i naciśnij Shift + F6 . Ja osobiście chcę zmienić
example
.W oknie dialogowym ostrzeżenia wybierz Zmień nazwę pakietu, a następnie wstaw żądaną nazwę pakietu.
2- Otwórz
AndroidManifest.xml
i wewnątrz<manifest>
tag zmieńpackage
na żądaną nazwę pakietu.3 - otwórz
build.gradle(Module: app)
i zmieńapplicationId
żądaną nazwę pakietu.źródło
Wybierz opcję
Odznacz opcję Kompaktowe puste pakiety środkowe.
Zmiana nazwy katalogu crl na crl1
Na koniec kliknij przycisk Do Refactor zaznaczony na obrazku poniżej, wprowadź kod tutaj
Po wprowadzeniu zmian
źródło
Spróbuj wykonać następujące czynności:
******* Wreszcie to zrobione ******
źródło
Naciśnij Ctrl+ Shift+R
Wymień stary pakiet na nowy.
Kliknij prawym przyciskiem myszy nazwę pakietu.
Refactor
>Rename
i zmień nazwę na nowąźródło
ctrl+ Shift+ Rzawsze działało dla mnie. Po prostu
replace all
i wybierzAll Files
.źródło
Pierwsza część składa się z tworzenia nowego pakietu pod
java
folderze i wybierając następnie przeciągając wszystkie pliki źródłowe zold package
tegonew package
. Następnie musiszremane
podać nazwę pakietu w Androidziemanifest
do nazwy nowego pakietu.W kroku 2 oto, co musisz zrobić. Musisz zmienić starą nazwę pakietu w
applicationId
modulebuild.gradle
w swoim studiu Android oprócz zmiany nazwy pakietu wmanifest
. Podsumowując, kliknij,build.gradle
który znajduje się poniżej „AndroidManifest.xml” i zmień wartośćapplicationId
na nazwę nowego pakietu.Następnie na samej górze poniżej
build
.clean
twój projektrebuild
. Odtąd powinno być dobrze.źródło
Najlepszym sposobem jest napisanie nowej nazwy pakietu i przeciągnięcie ze starszej nazwy pakietu.
Drugi sposób, jeśli klikniesz Refaktoryzuj, a następnie przeniesiesz opcję, a następnie zmienisz nazwę pakietu, zmieni on nazwę pakietu, a następnie przebudujesz.
W Build.gradle musisz to zrobić ręcznie, jeśli zmienisz fakturę, to nie zmieni ona nazwy w Build.gradle.
źródło