Salin proyek yang ada dengan nama baru di Android Studio

100

Saya ingin menyalin proyek Android saya dan membuat proyek baru dari file yang sama hanya dengan nama yang berbeda. Tujuannya adalah agar saya dapat memiliki versi kedua dari aplikasi saya yang didukung iklan di toko aplikasi.

Saya menemukan jawaban ini di sini:

Android - salin proyek yang ada dengan nama baru

Tapi itu untuk Eclipse. Bagaimana saya bisa melakukan ini di Android Studio?

Mike
sumber

Jawaban:

66

Langkah-langkah dalam link yang Anda tentukan juga harus berfungsi untuk Android Studio. Cukup buat salinan (menggunakan pengelola file) dari seluruh folder modul dan beri nama baru. Sekarang buka dan gunakan Refactor -> Rename(klik kanan pada item yang ingin Anda ganti namanya) untuk mengganti nama modul dan paket Anda.

Lihat ini untuk detail tentang pemfaktoran ulang di IntelliJ / Android Studio.

free3dom
sumber
Windows 10 mengatakan jalur file terlalu panjang. Saya memiliki pembaruan aniversary dan melakukan trik Editor Kebijakan Grup ke jalur file yang panjang. Tampaknya Explorer masih belum dapat menangani jalur file yang panjang. Lihat: superuser.com/questions/1114181/…
Andrew S
3
Saya mencoba ini, tetapi ketika saya menjalankan proyek, Android Studio menghapus aplikasi lama saya di perangkat saya. Saya ingin memiliki kedua aplikasi secara bersamaan di perangkat (untuk menguji tab kustom chrome). Bagaimana cara memaksa Android Studio untuk memiliki kedua aplikasi sekaligus di perangkat?
Locksleyu
Saya telah memilih folder paket dasar dan mengklik Refactor -> Ubah nama, saya mendapat kesalahan dengan opsi "ganti nama paket", lalu saya melakukan opsi "ganti nama folder" dengan sukses.
Ismail Yavuz
Juga harus merefaktor dan mengganti nama file de iml !!!, jika tidak, itu tidak akan berhasil
JoeCoolman
43

Jika Anda menggunakan Gradle - jangan lupa untuk mengubah atribut applicationId di file app / build.gradle .

Sergii
sumber
3
Ini sangat penting karena saya lupa memodifikasi applicationId di file build.gradle dan akhirnya menerbitkan aplikasi dengan nama paket yang salah di Play Store
wenjiun
Ini lebih merupakan komentar daripada jawaban yang sebenarnya.
The Unknown Dev
Itu kuncinya!
Denis
39

Seperti yang ditunjukkan free3dom , inilah yang harus dilakukan:

  1. Buat salinan menggunakan pengelola file
  2. Edit file aplikasi secara manual build.gradleuntuk mengubah nama paket (Anda dapat menggunakan pengelola file).
  3. Edit secara manual AndroidManifest.xmluntuk mengubah nama paket.
  4. Lari gradle sync.
  5. Buka proyek di Android Studio, dan lakukan refaktorisasi nama paket.
  6. Jalankan lagi sinkronisasi gradle.

Tampaknya berfungsi tanpa masalah.

Veeru
sumber
9
Saya bertanya-tanya bagaimana Anda melakukan sinkronisasi gradle di luar studio android
erdomester
1
mengikuti ini, tetapi tidak melakukan langkah # 4, baru saja membuka Android Studio dan mengimpor proyek yang disalin. Juga menghapus file .iml dari proyek yang disalin saat yang baru telah dibuat. bekerja dengan baik! Terima kasih!
nommer
@nommer yang kamu .imlbicarakan ?? saya dapat menemukannya di project/prjectname.imldan lainnya di project/app/app.iml, mana yang harus dihapus?
Hirdesh Vishwdewa
@Veeru bisakah kamu menjelaskan langkah ke-5 ??
Hirdesh Vishwdewa
@HirdeshVishwdewa pertanyaan bagus! saya melakukannya beberapa waktu yang lalu sehingga saya tidak dapat mengingatnya, tetapi saya menduga itu adalah proyek / *. iml
nommer
31

Jika Anda menggunakan Android Studio versi terbaru, Anda dapat membiarkannya membantu Anda dalam hal ini.

Catatan: Saya telah menguji ini di Android Studio 3.0 saja.

Prosedurnya adalah sebagai berikut:

  1. Dalam tampilan proyek (ini datang bersama dengan tangkapan dan struktur di sisi kiri layar), pilih Proyek daripada Android .
    Nama proyek Anda akan berada di puncak pohon (di samping pustaka eksternal).
    Pilih proyek Anda lalu pergi ke Refactor -> Copy....
    Android Studio akan menanyakan nama baru dan tempat Anda ingin menyalin proyek. Berikan yang sama.

  2. Setelah penyalinan selesai, buka proyek baru Anda di Android Studio.
    Paket masih akan menggunakan nama proyek lama.
    Itu adalah paket kelas Java, ID aplikasi, dan semua hal lain yang dibuat menggunakan nama paket lama.
    Kita perlu mengubah itu.
    Dalam tampilan proyek, pilih Android .
    Buka sub-direktori java dan pilih paket utama.
    Kemudian klik kanan di atasnya dan pergi ke Refactorkemudian Rename.
    Android Studio akan memberi Anda peringatan yang mengatakan bahwa beberapa direktori sesuai dengan paket yang akan Anda refactor.
    Klik Rename packagedan tidak Rename directory .
    Setelah langkah ini, proyek Anda sekarang sepenuhnya menggunakan nama baru.

  3. Buka file res / values ​​/ strings.xml, dan ubah nama proyek.
  4. Jangan lupa untuk mengubah ID aplikasi Anda di "Gradle Build Module: app".
  5. Langkah terakhir adalah membersihkan dan membangun kembali proyek, jika tidak, saat mencoba menjalankan proyek Anda, Android Studio akan memberi tahu Anda bahwa ia tidak dapat menginstal APK (jika Anda menjalankan proyek sebelumnya).
    Jadi Build -> Clean projectkemudian Build -> Rebuild project.
    Sekarang Anda dapat menjalankan proyek kloning baru Anda.
nt.bas
sumber
Langkah 4 adalah apa yang saya butuhkan agar penerapan gagal, proyek yang disalin setelah hanya menyalin folder yang saya pikir
Jim Factor
2
Penting: Jika Anda menggunakan layanan google play. Pastikan juga untuk memperbarui nama paket di file google-services.json.
Gihan Gamage
Terima kasih atas jawaban ini! Satu tambahan: Saya juga memperbarui rootProject.name di settings.gradle.
alexx
16

Tujuannya adalah agar saya dapat memiliki versi kedua dari aplikasi saya yang didukung iklan di toko aplikasi.

Saat ini cara terbaik untuk melakukannya adalah tanpa menyalin proyek.
Anda dapat melakukannya dengan menggunakan rasa yang berbeda di build.gradlefile Anda .

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

Dengan cara ini Anda hanya memiliki salinan file dan Anda dapat menangani perbedaannya dengan mudah.

Gabriele Mariotti
sumber
14

Ini adalah kombinasi jawaban nt.bas dan langkah 9 dari jawaban Civic dengan contoh visual karena saya butuh beberapa saat untuk mengetahui apa yang dimaksudkan karena saya baru mengenal Android Studio. Telah diuji di Android Studio 3.2.1.

  1. Buka proyek yang ingin Anda klon di Android Studio. (Dalam contoh ini, nama proyek lama adalah test5dan nama proyek baru adalah test6)

  2. Di panel file-overview kiri, klik: Project (yang saat ini mungkin bertuliskan android).

fig0

  1. Klik tombol kanan mouse pada proyek di dalam panel file explorer dan klik refactor> clone.

fig1

  1. Ubah "Nama baru" menjadi nama proyek baru Anda dan klik ok.

fig2

  1. File> buka> Jendela baru> Pilih proyek baru Anda> Buka di jendela proyek baru. Di jendela baru, tunggu sampai baris bawah Android studio selesai / mengatakan: "Gradle Sync Finished".

16

17

14

  1. Di panel tinjauan file dan klik tombol kanan mouse (RMB) di: app.java/ <nama proyek lama Anda (bukan nama proyek yang diuji, bukan yang androidTest, hanya yang kosong)>

fig8

  1. Masukkan nama baru paket Anda dan pilih kedua tanda centang, klik refactor.

gbr9 fig10

  1. Di bilah kiri bawah, klik "Lakukan refactor".

gbr12

  1. Buka app / res / values ​​/ strings.xml dan ubah nama proyek lama (misalnya test5) menjadi nama baru proyek sejalan:

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

fig3

  1. Buka Gradle scripts / build.gradle (Module: app) dan ubah baris ke baris yang sama dengan nama proyek baru Anda:% fig4

    applicationId "com.example.a.test5"    
    

fig4

  1. Garis kuning akan muncul di bagian atas panel kode Anda, meminta sinkronisasi gradle. Tekan "sinkronkan sekarang".

fig5

  1. di bilah atas, tekan build> Clean project.

gbr13

  1. Jika tertulis "Gradle build finish" di kiri bawah, Anda mengklik "Build> Rebuild project".

gbr14

gbr15

  1. Sekarang Anda harus dapat mengkompilasi dan menjalankan proyek Anda lagi (jika berhasil).
di
sumber
1
jawaban yang bagus! Anda juga dapat menggunakan file> new> import project daripada membuka proyek pada langkah 5 di atas. Itulah yang berhasil untuk saya.
Sasuke Uchiha
8

Saya mengikuti langkah-langkah ini dan sejauh ini berhasil:

  1. Salin dan tempel folder seperti dulu.
  2. Buka Android Studio (v3.0.1).
  3. Pilih Buka Proyek yang sudah ada.
  4. Tutup pesan yang akan muncul dengan judul: "Import Gradle Projects".
  5. Di sisi kiri pada Tab Android pergi ke: app -> java -> pilih folder pertama (folder proyek Anda)
  6. Refactor => Ubah nama ... (Shift + F6)
  7. Ubah Nama Paket, Pilih kedua opsi - Masukkan nama folder baru dalam huruf kecil.
  8. Lakukan Refactor
  9. Pilih: Sinkronkan Proyek dengan File Gradle di toolbar.
  10. Membangun => Proyek Bersih
  11. Buka app -> res -> values ​​-> strings.xml, dan ubah nama aplikasi di baris ke-2.
Sipil
sumber
Selanjutnya, jika Anda menggunakan API layanan Google, seperti Maps, Firebase, dan semacamnya ... Pastikan untuk menghapus file yang memiliki referensi nama paket lama (seperti google_services.json di app / src). Silakan lihat ini untuk keseluruhan prosedur.
varun
3

Apendiks dari Gitbook Kursus Dasar-dasar Pengembang Android berisi langkah-langkah untuk menyalin dan mengganti nama proyek yang ada:

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

Bryon Nicoson
sumber
Sangat cocok untuk saya dengan Android Studio 3.3, dengan proyek kompleks yang memiliki banyak modul dan dependensi. Terima kasih.
nat101
1
Tautan itu ada di bagian terakhirnya: "Situs ini akan dihapus pada 31 Juli 2019."
Peter Mortensen
3

Saat memfaktorkan ulang nama paket di Android Studio, Anda mungkin perlu mengklik roda gigi kecil di sebelah kanan oleh package / android / project / etc - navigator dan hapus centang 'compact empty middle packages' untuk melihat setiap bagian dari nama paket sebagai direktori sendiri. Kemudian untuk direktori individu lakukan refactor.

Ini penting jika Anda perlu mengubah semua bagian dari nama paket. Misalnya, dari com.example.originalproject ke org.mydomain.newproject. Jika tidak, operasi refactor / rename hanya akan membiarkan Anda mengubah "originalproject" menjadi "newproject", dan "com.example" tidak akan berubah. Ada video bagus yang menunjukkan ini: https://www.youtube.com/watch?v=dMK-RBVLeIY

gnyrfta.dll
sumber
2

Saat menyalin proyek, Anda juga perlu menghapus file build perantara sisa asli (someActivity $ 4.class) dari direktori C: ... \ AndroidStudioProjects (project_name) \ app \ build \ intermediates \ class \ release .... Jika tidak, Anda hampir pasti akan mengalami kegagalan build untuk proyek baru jika Anda mencoba mengompilasi proyek yang disalin. Refactoring tidak akan menyelesaikan masalah ini.

Mark Rossmiller
sumber
2

Saya sudah mencoba dari jawaban nt.bas dan jawaban gnyrfta yang bekerja dengan baik untuk saya.

Mengutip dari jawaban nt.bas :

Jika Anda menggunakan Android Studio versi terbaru, Anda dapat membiarkannya membantu Anda dalam hal ini.

Catatan: Saya telah menguji ini di Android Studio 3.0 saja.

Prosedurnya adalah sebagai berikut:

  1. Dalam tampilan proyek (ini datang bersama dengan tangkapan dan struktur di sisi kiri layar), pilih Proyek daripada Android .
    Nama proyek Anda akan berada di puncak pohon (di samping pustaka eksternal).
    Pilih proyek Anda lalu pergi ke Refactor -> Copy....
    Android Studio akan menanyakan nama baru dan tempat Anda ingin menyalin proyek. Berikan yang sama.

  2. Setelah penyalinan selesai, buka proyek baru Anda di Android Studio.
    Paket masih akan menggunakan nama proyek lama.
    Itu adalah paket kelas Java, ID aplikasi, dan semua hal lain yang dibuat menggunakan nama paket lama.
    Kita perlu mengubah itu.
    Dalam tampilan proyek, pilih Android .
    Buka sub-direktori java dan pilih paket utama.
    Kemudian klik kanan di atasnya dan pergi ke Refactorkemudian Rename.
    Android Studio akan memberi Anda peringatan yang mengatakan bahwa beberapa direktori sesuai dengan paket yang akan Anda refactor.
    Klik Rename packagedan tidak Rename directory .
    Setelah langkah ini, proyek Anda sekarang sepenuhnya menggunakan nama baru.

  3. Buka file res / values ​​/ strings.xml, dan ubah nama proyek.
  4. Langkah terakhir adalah membersihkan dan membangun kembali proyek, jika tidak, saat mencoba menjalankan proyek Anda, Android Studio akan memberi tahu Anda bahwa ia tidak dapat menginstal APK (jika Anda menjalankan proyek sebelumnya).
    Jadi Build -> Clean projectkemudian Build -> Rebuild project.

Sampai saat ini Anda hanya mengganti nama seluruh proyek Anda . Untuk mengganti nama nama kemasan, Anda harus mengikuti jawaban gnyrfta yang dijelaskan sebagai:

Saat memfaktorkan ulang nama paket di Android Studio, Anda mungkin perlu mengklik roda gigi kecil di sebelah kanan oleh package / android / project / etc - navigator dan hapus centang 'compact empty middle packages' untuk melihat setiap bagian dari nama paket sebagai direktori sendiri. Kemudian untuk direktori individu lakukan refactor.


PS: Jika Anda memiliki file

Gagal menyelesaikan sesi: INSTALL_FAILED_INVALID_APK: Pisahkan lib_slice_0_apk ditentukan beberapa kali

Hapus saja folder build appmodule dan Rebuild project!

Ini akan memperbaiki masalahnya!

Mukyuu
sumber
2

Saya menggunakan Android 3.3 dan begitulah cara kerjanya untuk saya:

1 - Pilih tampilan proyek

2 - Klik kanan nama proyek, yang ada di root proyek dan pilih opsi refactor -> copy, itu akan meminta Anda dengan jendela untuk memilih nama baru.

3 - Setelah langkah 2, Android akan membuat proyek baru untuk Anda, Anda harus membuka proyek baru itu dengan nama baru

4 - Ubah nama aplikasi di "string.xml", ada di "app / res / values ​​/ string.xml"

Sekarang Anda memilikinya, proyek yang sama dengan nama baru. Sekarang Anda mungkin ingin mengubah nama paket, itu dijelaskan pada langkah-langkah berikut

(opsional) Untuk mengubah nama paket utama

5 - buka "app / java", akan ada tiga folder dengan nama yang sama, yang utama, an (androidTest)dan a (test), klik kanan yang utama dan pilih format -> rename, itu akan meminta Anda dengan peringatan bahwa beberapa direktori sesuai dengan paket itu , lalu klik "Ubah nama paket". Pilih nama baru dan klik di refactor. Sekarang, di bawah tampilan kode, di sini akan menjadi pratinjau refactor, klik "Do refactor"

6 - Buka opsi "build", klik "Clean project", lalu "Rebuild project".

7 - Sekarang tutup proyek dan buka kembali.

vinicius de novaes
sumber
1
Akhirnya, solusi yang tidak memakan waktu 20 menit! Bekerja pada percobaan pertama tanpa kesalahan aneh. Untuk langkah 5, saya baru saja memfaktorkan ulang-> mengganti nama paket saya.
Manusia Salju
2

Buka folder sumber tempat proyek Anda berada.

  1. Salin proyek dan masa lalu dan ubah namanya.
  2. Buka Android Studio dan muat ulang.
  3. Pergi ke ->Settings.gradle.
  4. Sertakan ':your new project name '
Bassem Qoulta
sumber
2

Persyaratan dan pengujian di Android Studio 3.5

Pastikan proyek lama Anda bekerja dengan baik dengan perpustakaan studio android Anda yang sudah ada.

  1. Salin direktori proyek dan ganti nama folder untuk nama proyek baru misalnya Bramara
  2. Buka proyek baru Anda yang sudah ada menggunakan Android Studio 3.5. Setelah membuka proyek selesai, Arahkan ke 1: Proyek -> Proyek. Anda mungkin melihat proyek Anda hanya memiliki dua direktori yang menunjuk ke folder proyek baru dan folder proyek lama. Tutup proyek Anda.
  3. Edit appl.iml pada direktori proyek baru -> app -> appl.iml menggunakan editor teks. Ganti semua nama proyek lama menjadi Nama Proyek baru.
  4. Buka kembali proyek baru Anda yang sudah ada. Arahkan ke 1: Proyek -> Proyek. Anda mungkin melihat proyek Anda hanya memiliki satu direktori.
  5. Arahkan ke 1: Proyek -> Paket. klik kanan pada komponen Anda -> Refactor -> Rename.
  6. Pesan peringatan akan muncul. Pastikan semua perubahan akan diterapkan ke folder proyek baru! Setelah itu pilih Ganti nama paket misal com.dedetok.bramara.
  7. Arahkan ke 1: Proyek -> Android. Buka aplikasi -> manifes -> AndroidManifest.xml. Perbaiki Aktivitas Aplikasi ke nama paket baru. Ubah Nama Aplikasi Anda menjadi yang baru.
  8. Buka Gradle Scripts -> build.gradle (Module: app), ubah applicationId Anda ke proyek baru, misalnya com.dedetok.bramara dan sinkronkan proyek.
  9. Bersihkan dan bangun kembali proyek baru Anda.
  10. Proyek baru Anda siap untuk diedit / diubah.

Catatan: jika adb run yang menampilkan aktivitas tidak ditemukan, edit Konfigurasi Run / Debug Anda. Modul harus mengarah ke aplikasi modul, misalnya aplikasi.

Dedetok
sumber
Pada langkah 7 saya tidak dapat menemukan app-> manifes. Jadi saya membuka Project-> Project dan dari folder src saya membuka manifest. Studio meminta sinkronisasi untuk mengedit file dan kemudian baik
makkasi
1

Cara termudah (dan pasti tercepat) untuk melakukannya membutuhkan WINRAR, 7zip atau perangkat lunak pengarsipan serupa:

  1. Temukan folder proyek di windows explorer - klik dua kali untuk membuka folder ini.

  2. Buat folder baru dan beri nama "Cadangan".

  3. Saat masih dalam folder project, pilih semua file / folder, kecuali folder "backup".

  4. Klik kanan dan pilih "tambahkan ke arsip" atau "buat arsip" (perintah akan berbeda bergantung pada perangkat lunak pengarsipan Anda)

  5. Beri nama arsip dan klik ok.

  6. Pindahkan arsip ini ke folder "Cadangan".

Anda Selesai - untuk membuka arsip cadangan, buka folder "Cadangan" dan klik kanan pada file cadangan. Pilih "Ekstrak" atau buat folder baru tempat file akan diekstraksi dan tekan "ok" lalu buka proyek seperti biasa dari Android Studio, dll.

Tulio Perez
sumber
0

Saya mengalami masalah dengan berikut ini:

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

di Android Studio versi: 3.3.2

sampai saya mematikan file .idea / workspace.xml.

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

Sebelum melakukan itu, Android Studio masih akan mengarah ke folder sumber asli dan semua penggantian nama diterapkan ke file sumber asli (dalam Testcopysource dalam contoh saya di atas).

daveb
sumber
0

Pada Februari 2020, untuk Android Studio 3.5.3, jawaban paling sederhana yang saya temukan adalah video ini .

Catatan 1: Pada 01.24 tab "Temukan" muncul di bawah. Klik "Do Refactor" dan lanjutkan seperti di video.

Catatan 2: Jika Anda memiliki file Java / Kotlin "Ditandai sebagai Teks Biasa", Anda perlu mengubah nama paket di bagian atas secara manual, yaitupackage com.example.thisplaceneedstobemanuallyupdated

Catatan 3: Berhati-hatilah dengan kasus surat saat mengganti nama, seperti di video.

Catatan 4: Jika Anda ingin memperbarui nama proyek pada bilah judul jendela proyek, ubah rootProject.name = 'YourProjectName'di dalam file " settings.gradle " di bawah direktori " Skrip Gradle ".

Xfce4
sumber