Скопіюйте існуючий проект з новою назвою в Android Studio


100

Я хотів би скопіювати свій Android-проект та створити новий проект із тих же файлів лише з іншим ім’ям. Мета цього - я можу мати другу версію свого додатка, яка підтримується в магазині додатків.

Я знайшов цю відповідь тут:

Android - скопіюйте існуючий проект з новою назвою

Але це для Eclipse. Як я можу це зробити в Android Studio?

Відповіді:


66

Крок у вказаному посиланні також повинен працювати для Android Studio. Просто зробіть копію (за допомогою файлового менеджера) всієї папки модуля і дайте їй нове ім’я. Тепер відкрийте його та використовуйте Refactor -> Rename(клацніть правою кнопкою миші елемент, який ви хочете перейменувати), щоб перейменувати свій модуль та пакет.

Дивіться це подробиці про рефакторінга в IntelliJ / Android Studio.


У Windows 10 кажуть, що шлях до файлу занадто довгий. У мене є ювілейне оновлення і я намагався редактор групових політик обдурити довгі шляхи до файлів. Здається, Explorer ще не вдається обробити довгі шляхи до файлів. Дивіться: superuser.com/questions/1114181/…
Andrew S

3
Я спробував це, але коли я запускаю проект Android Studio пише над моїм старим додатком на своєму пристрої. Я хочу мати обидва додатки одночасно на пристрої (для тестування хромованих користувацьких вкладок). Як змусити Android Studio мати обидва додатки одночасно на пристрої?
Локслію

Я вибрав папку базового пакета і натиснув Refactor -> Перейменувати, у мене з’явилися помилки з параметром «перейменування пакета», потім я успішно зробив варіант «перейменування папки».
Ісмаїл Явуз

Також потрібно рефактор і перейменувати файл de iml !!!, якщо цього не зробити, це не буде працювати
JoeCoolman

43

Якщо ви використовуєте Gradle - не забудьте змінити атрибут applicationId у файлі app / build.gradle .


3
Це дуже важливо, оскільки я забуваю змінити applicationId у файлі build.gradle і в кінцевому підсумку опублікувати додаток з неправильною назвою пакета в Play Store
wenjiun

Це більше коментаря, ніж фактичної відповіді.
Невідомий Dev

Це було ключове!
Денис

39

Як вказувало free3dom , ось що потрібно зробити:

  1. Створіть копію за допомогою файлового менеджера
  2. Відредагуйте build.gradleфайл програми вручну, щоб змінити ім'я пакета (можна скористатися менеджером файлів).
  3. Вручну відредагуйте, AndroidManifest.xmlщоб змінити назву пакета.
  4. Біжи gradle sync.
  5. Відкрийте проект у студії Android та перефактуруйте назву пакета.
  6. Знову запустіть синхронізацію gradle.

Це, здається, працює без проблем.


9
Цікаво, як ти робиш синхронізацію градусів поза андроїд-студією
erdomester

1
слідував за цим, але не зробив кроку №4, просто відкрив Android Studio та імпортував скопійований проект. Також видалено файл .iml з скопійованого проекту, оскільки новий створений. працював чудово! Дякую!
номери

@nommer який .imlур говорить про ?? я можу знайти одного project/prjectname.imlта іншого за адресою project/app/app.iml, якого потрібно видалити?
Hirdesh Vishwdewa

@Veeru ви можете пояснити 5-й крок ??
Hirdesh Vishwdewa

@HirdeshVishwdewa гарне запитання! я це зробив деякий час тому, що не можу згадати, але я здогадуюсь, що це проект / *. iml
nommer

31

Якщо ви використовуєте новітню версію Android Studio, ви можете дозволити їй допомогти вам у цьому.

Примітка. Я перевірив це лише в Android Studio 3.0.

Процедура така:

  1. У поданні проекту (це разом із захопленнями та структурою в лівій частині екрана) виберіть Проект замість Android .
    Назва вашого проекту буде вгорі дерева (поряд із зовнішніми бібліотеками).
    Виберіть проект та перейдіть до Refactor -> Copy....
    Android Studio запитає нове ім’я та куди ви хочете скопіювати проект. Надайте те саме.

  2. Після завершення копіювання відкрийте новий проект в Android Studio.
    Пакети все ще будуть мати стару назву проекту.
    Це пакети класів Java, ідентифікатор програми та все інше, що було створено за допомогою старої назви пакета.
    Нам потрібно це змінити.
    У поданні проекту виберіть Android .
    Відкрийте підкаталог java та виберіть основний пакет.
    Потім клацніть правою кнопкою миші та перейдіть до Refactorцього пункту Rename.
    Android Studio видасть вам попередження про те, що декілька каталогів відповідають пакету, який ви збираєтесь рефактор.
    Клацніть на Rename packageі ні Rename directory .
    Після цього кроку ваш проект тепер повністю під новою назвою.

  3. Відкрийте файл res / values ​​/ strings.xml та змініть назву проекту.
  4. Не забудьте змінити ідентифікатор програми в "Модулі збірки Gradle: додаток".
  5. Останнім кроком є ​​очищення та відновлення проекту, інакше при спробі запуску проекту Android Studio скаже вам, що він не може встановити APK (якщо ви запустили попередній проект).
    Тож Build -> Clean projectтоді Build -> Rebuild project.
    Тепер ви можете запустити ваш новий проект клонування.

Крок 4 - це те, що мені було потрібно, щоб отримати проект, який провалився, скопіював проект після того, як просто скопіював папку, я думаю
Джим Фактор

2
Важливо. Якщо ви користуєтеся послугами google play. Також обов’язково оновіть назви пакетів у файлі google-services.json.
Gihan Gamage

Дякую за цю відповідь! Одне доповнення: я також оновив rootProject.name у settings.gradle.
alexx

16

Мета цього - я можу мати другу версію свого додатка, яка підтримується в магазині додатків.

В даний час найкращий спосіб зробити це без копіювання проекту.
Ви можете зробити це, використовуючи різні смаки у вашому build.gradleфайлі.

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

Таким чином у вас є лише копія файлів, і ви можете легко впоратися з різницею.


14

Це поєднання відповіді nt.bas та кроку 9 відповіді Civic з візуальними прикладами, тому що мені знадобилося певний час, щоб дізнатися, що було призначено, оскільки я новачок в Android Studio. Він був протестований в Android Studio 3.2.1.

  1. Відкрийте проект, який потрібно клонувати в Android Studio. (У цьому прикладі стара назва проекту була, test5а нова назва проекту test6)

  2. На лівій панелі огляду файлів клацніть: Project (там, де він може зараз говорити android).

фіг0

  1. Клацніть правою кнопкою миші проект на панелі провідника файлів і натисніть рефактор> клон.

фіг1

  1. Змініть "Нове ім'я" на нове ім'я проекту та натисніть "ОК".

фіг2

  1. Файл> відкрити> Нове вікно> Виберіть новий проект> Відкрити у новому вікні проекту. У новому вікні зачекайте, поки нижній рядок студії Android закінчиться / каже: "Gradle Sync Finished".

16

17

14

  1. На панелі огляду файлів та правої кнопки миші натисніть (RMB) на: app.java/ <ваша стара назва проекту (не тестова, не androidTest, просто порожня)>

фіг.8

  1. Введіть нову назву вашого пакета та виберіть обидві галочки, натисніть рефактор.

фіг9 фіг10

  1. У нижньому лівому рядку натисніть "Зробити рефактор".

фіг12

  1. Відкрийте додаток / res / values ​​/ strings.xml та змініть назву старого проекту (наприклад, test5) на нову назву проекту в рядку:

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

фіг3

  1. Відкрийте сценарії Gradle / build.gradle (Модуль: додаток) та змініть рядок на той самий рядок із новою назвою проекту:% fig4

    applicationId "com.example.a.test5"    
    

фіг.4

  1. У верхній частині панелі коду з’явиться жовта лінія, що вимагає синхронізації з Gradle. Натисніть "зараз синхронізувати".

фіг5

  1. у верхній панелі натисніть збірку> Очистити проект.

fig13

  1. Якщо внизу ліворуч написано "Gradle закінчено," натисніть "Build> Rebuild project".

фіг.14

рис15

  1. Тепер ви зможете знову скласти і запустити свій проект (якщо він працював в першу чергу).

1
чудова відповідь! можна також використовувати файл> new> імпортувати проект замість відкритого проекту на кроці 5 вище. Це те, що працювало для мене.
Саске Учіха

8

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

  1. Скопіюйте та вставте папку, як раніше.
  2. Відкрийте Android Studio (v3.0.1).
  3. Виберіть Відкрити існуючий проект.
  4. Закрийте повідомлення, яке з'явиться із заголовком: "Імпорт проектів Gradle".
  5. Ліворуч на вкладці Android перейдіть до програми:> Java -> виберіть першу папку (папка вашого проекту)
  6. Refactor => Перейменувати ... (Shift + F6)
  7. Перейменуйте пакет, виберіть обидва варіанти - введіть назву нової папки в малі регістри.
  8. Зробіть Refactor
  9. Виберіть: Синхронізувати проект з файлами Gradle на панелі інструментів.
  10. Збірка => Очистити проект
  11. Перейдіть до програми -> res -> значень -> strings.xml та змініть ім'я програми у другому рядку.

Крім того, якщо ви користуєтесь будь-якими API сервісів Google, такими як "Карти", "Firebase" та подібні ... Не забудьте видалити файли, які мають старі посилання на ім'я пакета (наприклад, google_services.json у додатку / src). Будь ласка, зверніться до цього протягом усієї процедури.
varun

3

Додаток до навчальної програми «Основи курсу для розробників Android» включає в себе етапи копіювання та перейменування існуючого проекту:

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


Для мене чудово працював Android Studio 3.3, зі складним проектом, який має багато модулів та залежностей. Дякую.
nat101

1
Це посилання знаходиться на останньому етапі: "Цей сайт буде видалено 31 липня 2019 року."
Пітер Мортенсен

3

Під час рефакторингу назви пакета в Android Studio вам може знадобитися натиснути маленький зубчастий колесо праворуч пакетом / android / project / тощо - навігатором і зняти прапорець "компактний порожній середній пакет", щоб побачити кожну частину імені пакета як власний каталог. Потім для окремих каталогів роблять рефактор.

Це важливо, якщо вам потрібно змінити всі частини назви пакета. Наприклад, від com.example.originalproject до org.mydomain.newproject. В іншому випадку операція рефактора / перейменування дозволить вам змінити "originalproject" на "newproject", і він залишить "com.example" незмінним. Є гарне відео, яке показує це: https://www.youtube.com/watch?v=dMK-RBVLeIY


2

Коли ви копіюєте свій проект, вам також потрібно буде видалити оригінальні файли проміжного проміжного збирання (someActivity $ 4.class) з каталогів C: ... \ AndroidStudioProjects (ім'я проекту) \ app \ build \ intermediates \ class \ release ... каталогів. Інакше у вас майже напевно виникнуть збої в новому проекті, якщо ви спробуєте скласти скопійований проект. Рефакторинг цього не вирішить.


2

Я спробував відповісти від nt.bas і відповіді gnyrfta, які добре працюють для мене.

Цитуючи відповідь nt.bas :

Якщо ви використовуєте новітню версію Android Studio, ви можете дозволити їй допомогти вам у цьому.

Примітка. Я перевірив це лише в Android Studio 3.0.

Процедура така:

  1. У поданні проекту (це разом із захопленнями та структурою в лівій частині екрана) виберіть Проект замість Android .
    Назва вашого проекту буде вгорі дерева (поряд із зовнішніми бібліотеками).
    Виберіть проект та перейдіть до Refactor -> Copy....
    Android Studio запитає нове ім’я та куди ви хочете скопіювати проект. Надайте те саме.

  2. Після завершення копіювання відкрийте новий проект в Android Studio.
    Пакети все ще будуть мати стару назву проекту.
    Це пакети класів Java, ідентифікатор програми та все інше, що було створено за допомогою старої назви пакета.
    Нам потрібно це змінити.
    У поданні проекту виберіть Android .
    Відкрийте підкаталог java та виберіть основний пакет.
    Потім клацніть правою кнопкою миші та перейдіть до Refactorцього пункту Rename.
    Android Studio видасть вам попередження про те, що декілька каталогів відповідають пакету, який ви збираєтесь рефактор.
    Клацніть на Rename packageі ні Rename directory .
    Після цього кроку ваш проект тепер повністю під новою назвою.

  3. Відкрийте файл res / values ​​/ strings.xml та змініть назву проекту.
  4. Останнім кроком є ​​очищення та відновлення проекту, інакше при спробі запуску проекту Android Studio скаже вам, що він не може встановити APK (якщо ви запустили попередній проект).
    Тож Build -> Clean projectтоді Build -> Rebuild project.

До цього моменту ви перейменовуєте лише своє ціле ім'я проекту . Щоб перейменувати назву упаковки, потрібно дотримуватися відповіді gnyrfta, яка була описана як:

Під час рефакторингу назви пакета в Android Studio вам може знадобитися натиснути маленький зубчастий колесо праворуч пакетом / android / project / тощо - навігатором і зняти прапорець "компактний порожній середній пакет", щоб побачити кожну частину імені пакета як власний каталог. Потім для окремих каталогів роблять рефактор.


PS: Якщо у вас є

Не вдалося завершити сеанс: INSTALL_FAILED_INVALID_APK: Спліт lib_slice_0_apk визначався кілька разів

Просто видаліть папку збірки додатка та відновіть проект!

Це вирішить проблему!


2

Я використовую Android 3.3 і ось як це працювало для мене:

1 - Виберіть подання проекту

2 - Клацніть правою кнопкою миші назву проекту, що знаходиться в корені проекту, і виберіть варіант refactor -> copy, він запропонує вам з вікном вибрати нову назву.

3 - Після кроку 2 Android зробить новий проект для вас, ви повинні відкрити новий проект з новою назвою

4 - Змініть ім’я програми в "string.xml", це в "app / res / values ​​/ string.xml"

Тепер у вас є той самий проект із новою назвою. Тепер ви можете змінити назву пакета, це описано в наступних кроках

(необов’язково) Щоб змінити назву основного пакета

5 - перейдіть до "app / java", там буде три папки з тим самим іменем, основна, a (androidTest)і a (test), клацніть правою кнопкою миші головну і виберіть format -> rename, вона підкаже вам попередження про те, що цьому каталогу відповідає кілька каталогів , потім натисніть "Перейменувати пакет". Виберіть нове ім’я та натисніть рефактор. Тепер нижче вигляд коду, тут буде попередній перегляд рефактора, натисніть "Зробити рефактор"

6 - Перейдіть до опції «побудувати», натисніть «Очистити проект», потім «Відновити проект».

7 - Тепер закрийте проект і знову відкрийте його.


1
Нарешті, рішення, яке не займе 20 хвилин! Працювали спочатку спробуйте, не маючи дивних помилок. На кроці 5 я просто переробив-> перейменував свій пакунок.
Сніговик

2

Перейдіть до вихідної папки, де знаходиться ваш проект.

  1. Скопіюйте проект та минуле та змініть назву.
  2. Відкрийте Android Studio та оновіть.
  3. Перейти до ->Settings.gradle.
  4. Включати ':your new project name '

2

Вимога та тест на Android Studio 3.5

Переконайтеся, що ваш старий проект працює належним чином з наявною бібліотекою андроїд-студії.

  1. Скопіюйте каталог та перейменуйте папку для нової назви проекту, наприклад, Bramara
  2. Відкрийте існуючий новий проект за допомогою Android Studio 3.5. Після завершення відкриття проекту перейдіть до пункту 1: Проект -> Проект. Можливо, у вашому проекті є лише два каталогу, які вказують на нову папку проекту та стару папку проекту. Закрийте проект.
  3. Відредагуйте appl.iml у новому каталозі -> app -> appl.iml за допомогою текстового редактора. Замініть все старе ім'я проекту на нове ім'я проекту.
  4. Відкрийте свій новий проект. Перейдіть до пункту 1: Проект -> Проект. Можливо, у вашому проекті є лише один каталог.
  5. Перейдіть до пункту 1: Проект -> Пакети. клацніть правою кнопкою миші на своєму компоненті -> Refactor -> Перейменувати.
  6. З'явиться повідомлення з попередженням. Переконайтеся, що всі зміни стосуватимуться нової папки проекту! Після цього виберіть Перейменувати пакети, наприклад, com.dedetok.bramara.
  7. Перейдіть до пункту 1: Проект -> Android. Відкрийте додаток -> маніфести -> AndroidManifest.xml. Виправити активність програми до нового імені пакета. Змініть ім’я програми на нове.
  8. Відкрийте сценарії Gradle -> build.gradle (Модуль: додаток), змініть додатокId на новий проект, наприклад, com.dedetok.bramara та проект синхронізації.
  9. Очистіть і відновіть новий проект.
  10. Ваш новий проект готовий до редагування / зміни.

Примітка. Якщо запуск adb, що показує активність, не знайдено, відредагуйте конфігурацію Run / Debug. Модуль повинен вказувати на додаток модуля, наприклад, додаток.


На кроці 7 я не зміг знайти програми-> маніфести. Таким чином я відкрив Project-> Project і з папки src відкрив маніфест. Студія попросила синхронізувати, щоб відредагувати файл, і тоді було добре
makkasi

1

Найпростіший (і, безумовно, найшвидший) спосіб зробити це вимагає програмного забезпечення для архівації WINRAR, 7zip або подібного:

  1. Знайдіть папку проекту у Windows Explorer - двічі клацніть, щоб відкрити цю папку.

  2. Створіть нову папку та назвіть її "Резервне копіювання".

  3. Перебуваючи в папці проекту, виберіть усі файли / папки, крім папки "резервна копія".

  4. Клацніть правою кнопкою миші та виберіть "додати до архіву" або "створити архів" (команда буде відрізнятися залежно від програмного забезпечення для архівування)

  5. Назвіть архів і натисніть ОК.

  6. Перемістіть цей архів у папку "Резервне копіювання".

Ви готові - щоб відкрити архів резервного копіювання, відкрийте папку "Резервне копіювання" та клацніть правою кнопкою миші на файл резервної копії. Виберіть "Витягнути" або створіть нову папку, до якої файли будуть вилучені та натисніть "ОК", а потім відкрийте проект, як це було б зазвичай в Android Studio тощо.


0

У мене виникли проблеми з цим:

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

у версії Android Studio: 3.3.2

поки я не вбив файл .idea / workspace.xml.

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

До цього Android Studio все одно вказував би на оригінальну папку-джерело, і всі перейменування були застосовані до оригінальних вихідних файлів (в рамках Testcopysource в моєму прикладі вище).


0

Станом на лютий 2020 року для Android Studio 3.5.3 найпростіша відповідь, яку я знайшов, - це це відео.

Примітка 1: о 01.24 внизу відображається вкладка "Знайти". Натисніть "Зробити Refactor" і продовжуйте, як на відео.

Примітка 2: Якщо у вас є якісь файли Java / Kotlin "Позначено як звичайний текст", вам потрібно змінити назву пакета вгорі вручну, тобтоpackage com.example.thisplaceneedstobemanuallyupdated

Примітка 3: Будьте уважні до справ із листами під час перейменування, як у відео.

Примітка 4: Якщо ви хочете оновити назву проекту у рядку заголовка вікна проекту, змініть rootProject.name = 'YourProjectName'всередині " settings.gradle " файл у каталозі " Gradle Scripts ".

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