Перейменування модулів в Android Studio?


75

Я вибрав неправильну назву конкретного модуля, який я імпортував до проекту Gradle в Android Studio.

З цього приводу я хочу перейменувати модуль Facebook1на Facebook.

Чи можливо це в проекті Gradle і як це зробити?


11
Через 10 місяців перейменування модуля все ще не працює ... Я витрачаю більше часу на вади IDE, ніж на власні програми. Ганьба в Google.
Патрік

Я перейменував свій кореневий модуль, просто закривши свій проект. Перейменування кореневого каталогу / модуля, а після цього файлу * .iml у кореневому каталозі. Після цього перезапустився, і це спрацювало.
SamuelD

Відповіді:


133

Android Studio> = 1.4.1

  1. Клацніть правою кнопкою миші модуль -> Рефактор -> Перейменувати.
  2. Введіть нову назву модуля, натисніть OK.

Старіші версії Android Studio

У мене працювало наступне, тестоване в Android Studio (AS) 1.1 і 1.0.2, безпосередньо після імпортування проекту.

Під деревом "Android" (ATV),

  1. Клацніть правою кнопкою миші ім'я модуля:, appRefactor -> Rename (щоб myApp, натисніть OK)

  2. відчинено settings.gradle

  3. Змініть ':app'на ':myApp'та збережіть

  4. Вам буде запропоновано " Синхронізувати зараз ", зробіть це (підказка - це синє посилання над файлом)

    ( Ваш проект зникне з квадроцикла, але не хвилюйтеся, просто вийдіть як )

  5. У менеджері файлів (за межами Android Studio) відкрийте кореневий каталог проекту та перейменуйте папку appвmyApp

  6. Повторно відкрийте свій проект в AS, і ви побачите, як ваш модуль і сценарії Gradle знову з’являться під ATV! :)

Вітаємо! Ваш модуль перейменовано! (ххх, час для чаю)


1
Дякую. Причиною того, що я написав це, і, можливо, чому ви тут, є те, що в даний час немає належного шляху . @Scadge
T.Coutlakis

2
Дякую за рішення. Прикро для Google, що спроба перейменувати модуль програми через інтерфейс Android Studio руйнує проект.
myforums

1
@ T.Coutlakis просте запитання: крок 5 потрібно робити безпосередньо у файловій системі? Я зробив те саме, що і ви, але пропустив цей крок, можливо, він є обов’язковим? - Я був у поданні проекту, і в діалоговому вікні "Виберіть рефакторинг" я вибрав "Перейменувати модуль", закінчуючи ім'ям модуля, відмінним від імені каталогу. Після деяких змін у проекті рефакторинг не
тривав

1
Я можу підтвердити за допомогою @Jose_GD Перейменовуючи модуль з AS, спричиняє перейменування підмодуля в AS, АЛЕ у файловій системі все, що сталося, це те, що створено нову папку з новою назвою і відповідний файл iml було вставлено новостворена папка та папка старого модуля залишаються недоторканими, за винятком видалення iml. Щоб виправити це, я перемістив увесь вміст старої папки до нової, а потім видалив стару. Потім мені також довелося видалити include 'app', зробити синхронізацію gradle, а потім додати її ще раз і виконати ще одну синхронізацію gradle! Тому не перейменовуйте модуль з AS!
reubenjohn,

4
-1 Я роблю це на щойно створеному проекті, крок 4 ніколи не відбувається, коли я синхронізую вручну Gradle показує помилку про відсутність програми модуля, тоді я закриваю проект, роблю перейменування у файловій системі, відкриваю проект , а на квадроциклі нічого не відображається. Вітаємо! Ви втратили одну годину через застарілі відповіді на StackOverflow та неакуратні розробники Google, які не можуть застосувати хитру операцію перейменування в IDE.
Джуліо Піанкастеллі

12

Android Studio 1.3.2,
1. переключіть подання проекту зліва в Android Studio
2. клацніть правою кнопкою миші модуль, який потрібно змінити -> Refactor -> Rename
3. виконайте як «Перейменувати каталог», так і «Перейменувати модуль»
4. відкрийте налаштування. gradle, змініть назву модуля
5. Збірка -> Очищення проекту


Це Є правильна відповідь для AS 1.3.2. Якщо AS викидає IOException, переконайтесь, що всі файли у вашому проекті не відкриті в редакторі чи провіднику файлів.
Себастьян,

Це вірно і щодо Android Studio 2.1.1, хоча перейменування лише модуля також перейменує каталог.
Кенн Кел,

Це як і раніше правильна відповідь на android studio 2.2, якщо ви спробуєте здійснити рефакторинг в режимі перегляду android, він не перейменовує каталог автоматично і спричинить помилку відсутнього модуля
Joe Maher

11

У поданні проекту зліва в Android Studio,

  1. клацніть правою кнопкою миші на модулі, ім'я якого ви хочете змінити
  2. виберіть 'рефактор' -> 'перейменувати'
  3. виберіть варіант перейменування модуля
  4. виконайте кроки 1 - 2, а потім також перейменуйте каталог

Це не перейменовує посилання в Project Structure. Я все ще бачу стару назву. Отже, це спрацює, лише якщо Gradle не дозволить перейменовувати.
салона

3
@sandalone вам потрібно оновити файл settings.gradle з новою назвою модуля
Ani Fichadia

1
ім'я каталогу також оновлюється, коли ми перейменовуємо опцію модуля. Я просто спробував.
Аднан Алі

@AdnanAli, це означає, що ця відповідь не ґрунтується на досвіді чи чомусь, а поза
Фарид

9

Ви можете зробити це вручну, зі зміною або без зміни структури папок (не змінюйте її для незначного впливу на контроль версій)

Відповідно змінивши назву папки

1- відкрити settings.gradleта змінити назву вашого модуля (приклад від ':facebook1'до ':facebook')

2 - відповідно змінити назву папки (з xxx/facebook1на xxx/facebook)

3- Якщо інші модулі мають залежності від нього: відкрийте відповідний build.gradleі змініть залежність (від compile project(':facebook1')до compile project(':facebook'))

Не змінюючи назви папки

1- відкрити settings.gradleта змінити назву вашого модуля (приклад від ':facebook1'до ':facebook')

2 - додайте новий рядок у "settings.gradle":

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

3- Якщо інші модулі мають залежності від нього: відкрийте відповідний build.gradleі змініть залежність (від compile project(':facebook1')до compile project(':facebook'))


2

В AndroidStudio 2.2.2 перейменування модуля самостійно за допомогою рефактора / перейменування спрацювало для мене. (32-розрядна Linux Mint)

Діалогове вікно перейменування пропонує два варіанти: "каталог" або "модуль" (перемикачі, які взаємовиключні, принаймні за один прохід). Я не був впевнений, який вибрати, тому я закінчив тут, шукаючи відповіді. Одна відповідь сказала "виконайте обидва" як два кроки, інша відповідь сказала "зробіть модуль, потім каталог" як два кроки. Тож я спочатку вибрав "модуль". На мій подив, що було все, що було потрібно, і модуль, і каталог були змінені. settings.gradle також був оновлений рефактором / перейменуванням в один крок.

Також були запущені "sintele gradle" та "чиста збірка". Після складання планшета жодної скарги на зміну імені.

просто додавши цю відповідь на випадок, якщо хтось із 2.2.2 або пізнішої версії не впевнений, який вибрати. Також, щоб повторити повторення сказаного іншими, спершу створіть резервну копію проекту.


Я слідував цьому, але потім мені довелося відредагувати 1) файл .iml для модуля 2) файл .iml для проекту 3) модуль build.gradle 4) параметри проекту.gradle
WillC

... та 5) прийняти 'видалити модуль [ім'я старого модуля] з проекту' 6) Зневірити кеш-пам'ять та перезапустити двічі. Отже YMMV.
WillC

2
  1. Закрити папку модуля проекту і перейменувати oldNameв newNameтой відкритому проекті і зміна модуля ім'я include ':oldName'для include ':newName'вsettings.gradle

2

Станом на Android Studio 3.4.1

Перейменувати модуль

  1. У вікні проекту клацніть модуль правою кнопкою миші та виберіть Refactor > Rename
  2. Виберіть Rename moduleі натиснітьOK
  3. Введіть нову назву модуля та натисніть OK
  4. Важливе settings.gradle оновлення автоматично. Однак потрібно вручну оновити будь-які build.gradleзалежності, щоб відобразити нову назву модуля:
dependencies {
    // manually update this after renaming the module
    implementation project(':newmodulename')
}

Перейменуйте пакет, щоб відображати ім'я нового модуля

  1. У вікні проекту клацніть правою кнопкою миші потрібний пакет і виберіть Refactor > Rename
  2. Якщо є інші набори src з однаковим ім'ям пакета ( testабо androidTest), у діалоговому вікні з'явиться запит, чи потрібно їх також перейменовувати. Якщо так, виберітьRename package
  3. Введіть нову назву пакета та натисніть Refactor
  4. Виберіть Do Refactorу Попередньому перегляді рефакторингу

Порада. Виберіть, File > Invalidate Caches / Restartщоб виправити невирішені посилання на ресурси, спричинені перейменуванням модуля.


0

Це працює для мене в Android Studio 1.2.1.1

Приміщення: Я НЕ використовую функцію рефактора Android Studio для перейменування модуля

Це кроки, які я виконую:

  1. Перейменуйте папку модуля (безпосередньо у файловій системі)
  2. Змініть файл setting.gradle відповідно (безпосередньо у файловій системі)
  3. Відкрийте проект в Android Studio

Це все.


Ваш третій крок - це те саме, що ваш другий крок. Крім того, це не працює навіть у AS 1.2.2, тому хто знає, що ви насправді зробили, щоб перейменування працювало.
Джуліо Піанкастеллі

Ви праві 2-й і 3-й кроки рівні (відредаговано). Версія 1.2.1.1 (mac os), а не 1.2.2.
Франческо Мамелі

-2

Здається, різні люди мають успіх із різними методами, але коли я хотів перейменувати свій проект із:

com.example.myname.projectname

до

com.company.projectname

Я спробував усе, і єдиним способом, яким я змусив це працювати, було:

1) Вийти з Android Studio 2) зробити резервну копію всього! (знайдіть папку проекту та зробіть її копію) 3) Знайдіть і замініть усі екземпляри com.example.myname.projectname на com.company.projectname

Зверніть увагу, що є п’ять місць (насправді це залежить від вашого проекту, у мене їх було п’ять), де вам потрібно перейменувати папки, оскільки це створює підпапки, що називаються com \ example \ myname \ projectname:

project \ app \ src \ main \ java project \ app \ src \ androidTest \ java project \ app \ build \ generated \ source \ buildConfig \ debug \ project \ app \ build \ generated \ source \ buildConfig \ test \ project \ app \ build \ generated \ source \ r \ debug \

Крім того, у project.idea \ є файл, який називається workspace.xml - у цьому файлі вам потрібно буде знайти текст com \ example \ myname \ projectname

В іншому випадку виконайте пошук у каталозі проекту, щоб знайти "com.example.myname.projectname" і замінити на "com.company.projectname"

4) Знову відкрийте Android Studio. якщо початкова назва каталогу проекту однакова (можливо, якщо сама назва проекту однакова?), вона знову відкриється, якщо ви її відкривали минулого разу, інакше ви зможете відкрити її як зазвичай.

5) Перейдіть до Файл - Структура проекту (CONTROL + ALT + SHIFT + S). 6) У розділі "Ароматизатори" змініть ідентифікатор програми на нову назву. 7) Збудьте Android Studio і перезапустіть його. 8) Тепер ви зможете побудувати свій проект. 9) Піди випий, це було набагато більше зусиль, ніж мало б бути!

Одне дуже важливе зауваження: в назві пакету ви можете мати лише букви ASCII (можливо, ви можете мати цифри, але не як перший символ). Сама Java дозволяє цифрам запускати ім'я пакета, але Android цього не робить: імена пакетів в Android studio, коли ім'я розробника починається з номера? Я намагався перейменувати

Моє обхідне рішення (і, якщо поглянути на програми на моєму телефоні, здається, це те, що роблять інші) - якщо ви хочете номер на початку або назви вашої компанії, або назви програми, напишіть слово - замість com.123company. 55проект, можливо, використовує com.onetwothreecompany.fiftyfiveproject


Питання тут стосується модулів, а не імен пакунків. Вони не однакові
Jose_GD

Хороший момент, моя помилка! Я натрапив на цю тему, коли вирішував проблему перейменування свого проекту, і думав, що буду корисним, і опублікувати розроблене рішення. Очевидно, я не прочитав його належним чином, вибачте!
Квентін
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.