Bagaimana mengubah nama paket Aplikasi Android

133

Keystore saya rusak, oleh karena itu Android Market meminta saya untuk mengganti nama aplikasi dan mengirimkannya kembali. Namun, setiap kali saya mengedit nama paket di Manifest dan di seluruh file, itu memberi saya banyak kesalahan.

Bagaimana cara yang tepat untuk mengubah nama aplikasi?

Allen Gingrich
sumber
3
untungnya mereka menambahkan "ajaib, ubah tombol nama paket" sejak 2010 - lihat jawaban @Marc Bernstein - stackoverflow.com/a/4025633/383414
Richard Le Mesurier
terima kasih Richard Le ...
DoruChidean
3
Kemungkinan duplikat Paket Ganti Nama Android Studio
Bo Persson
sulit untuk menjadi duplikat saat ini ditanyakan 3 tahun sebelumnya ...
Ryan Ternier

Jawaban:

102

Jika Anda menggunakan Eclipse, Anda dapat mencoba petunjuk ini dari situs pengembang Android. Mereka khusus untuk sampel GestureBuilder tetapi harus berlaku untuk aplikasi apa pun sejauh yang saya tahu:

[H] Berikut cara melakukan ini di Eclipse:

  1. Klik kanan pada nama paket ( src/com.android.gesture.builder).
  2. Pilih Refactor> Rename dan ubah nama, misalnya menjadi com.android.gestureNEW.builder.
  3. Buka file manifes. Di dalam <manifest>tag, ubah nama paket menjadi com.android.gestureNEW.builder.
  4. Buka masing-masing dari dua file Aktivitas dan lakukan Ctrl-Shift-O untuk menambahkan paket impor yang hilang, lalu simpan setiap file. Jalankan aplikasi GestureBuilder di emulator.

Juga, pastikan Anda ingat untuk mengganti nama paket itu sendiri bersama dengan referensinya di file. Di Eclipse Anda dapat melihat nama paket di jendela file explorer / tampilan pohon di sisi kiri. Dalam pengalaman saya, Eclipse terkadang bisa sedikit rewel dan tidak dapat diandalkan dengan ini (meninggalkan referensi yang menyimpang ke nama paket lama, misalnya).

eldarerathis
sumber
Ini mungkin cara terbaik untuk melakukannya, tidak ada tombol ubah nama paket ajaib.
blindstuff
13
Ya ada. Lihat jawaban @Marc Bernstein.
Mark Phillip
Saya rasa penanya asli tidak perlu mengubah nama paket Java juga. Marc harus menjadi jawaban yang diterima.
mpellegr
Langkah pertama bukan "klik kanan", sebaiknya pilih "Refactor" di menu.
Deqing
Dan Anda mungkin perlu mengubah app_nameres-> values ​​=> strings.xml
Deqing
302

Ada cara untuk mengubah nama paket dengan mudah di Eclipse. Klik kanan pada proyek Anda, gulir ke bawah ke Alat Android, lalu klik Ganti Nama Paket Aplikasi.

Marc Bernstein
sumber
2
Baru saja mencoba Eldar dan berhasil - tetapi saya yakin ini akan berhasil juga.
Allen Gingrich
4
Ini adalah jawaban yang benar, tetapi ADT saat ini rusak, dan itu BREAKS setiap referensi ke kelas R. Jadi, Anda harus mengklik setiap file, lakukan "ctrl-shift-o" (atau cmd-shift-o di Mac), dan pilih paket-baru Anda yang bernama R (JANGAN pilih android.R! Semuanya akan rusak parah ), lalu tekan simpan. ... dan ulangi untuk SETIAP file individu :(
Adam
@Adam hanya untuk membuat hidup kita lebih mudah, klik proyek dan gunakan ctrl + shift + o, itu akan memperbarui referensi yang diimpor di SEMUA kelas / file: D
Blaze Tama
ini baru saja menyelamatkan hidup saya karena saya kehilangan kunci penyimpanan konyol saya dan harus menerbitkan ulang aplikasi saya.
Teoman shipahi
3
Saya menemukan nama paket file yang dideklarasikan di bagian atas setiap file agar tidak cocok dengan paket baru, atau folder tempat mereka berada. Anda dapat mengklik kanan folder sumber yang masih memiliki nama paket lama (setidaknya saya selalu melakukannya), pilih 'refactor' lalu 'rename' dan ubah namanya menjadi paket baru. eclipse kemudian akan mengganti nama folder dan deklarasi paket dari setiap file menjadi nama paket yang baru, seperti yang seharusnya dilakukan sebelumnya.
Androidcoder
52

Inilah cara Anda dapat melakukan ini di Eclipse:

  1. Klik kanan pada nama paket ( src/com.android.gesture.builder).
  2. Pilih Refactor > Renamedan ubah nama, misalnya menjadi com.android.gestureNEW.builder.
  3. Buka file manifes. Di dalam <manifest>tag, ubah nama paket menjadi com.android.gestureNEW.builder.
  4. Buka masing-masing dari dua Activityfile dan lakukan Ctrl+ Shift+ Ountuk menambahkan paket impor yang hilang, lalu simpan setiap file.
  5. Jalankan GestureBuilderaplikasi di emulator.

Tautan ke postingan

Perbarui cara super mudah, klik kanan pada proyek Anda ... masukkan deskripsi gambar di sini

AZ_
sumber
2
Cara yang cukup mengagumkan untuk melakukan ini!
Bung
2
Solusi yang lebih mudah. Ini seharusnya diterima;)
Nomade
12

Di Android Studio , yang, sejujurnya, Anda harus menggunakan, ubah nama paket dengan right-clickingnama paket diproject structure -> Refactor -> Rename...

Kemudian memberikan opsi untuk mengganti nama direktori atau paket. Pilih paketnya. Direktori harus mengikuti. Ketik nama paket baru Anda, dan klik Refactor. Ini akan mengubah semua impor dan menghapus impor yang berlebihan untuk Anda. Anda bahkan dapat memperbaikinya untuk Anda di komentar dan string, dll.

Terakhir , ubah nama paket yang sesuai di AndroidManifest.xml Anda di bagian atas. Jika tidak, Anda akan mendapatkan kesalahan di mana-mana mengeluh tentang R. apa pun.

Solusi lain yang sangat berguna

Pertama buat paket baru dengan nama by right clicking on thefolder java yang diinginkan -> baru -> paket.`

Kemudian, pilih dan seret semua kelas Anda ke paket baru. AndroidStudio akan mengatur ulang nama paket di mana-mana.

Setelah itu: di app, build.gradletambahkan / edit applicationId dengan yang baru. yaitu ( com.a.bcdalam kasus saya):

defaultConfig {
    applicationId "com.a.bc"
    minSdkVersion 13
    targetSdkVersion 19
}

Posting asli dan lebih banyak komentar di sini

menjulur
sumber
Anehnya, ketika saya melakukan itu, itu tidak memberikan pilihan direktori / paket ... hanya "nama modul" ...
Fattie
1
Hal yang sama untuk saya sekarang jika saya mengklik kanan pada direktori root. Setidaknya bagi saya, itu bukan nama paket saya yang sebenarnya. Jika nama paket Anda adalah com.a.bc, seharusnya ada direktori di bawah direktori root bernama bc. Di situlah Anda akan mendapatkan opsi yang berbeda. Sekarang, saya mendapatkan direktori atau modul. Coba modul. Anda selalu dapat membatalkannya (Ctrl + z harus melakukannya) jika ada yang rusak.
diambil
Terima kasih .. sial, maksud Anda direktori ".idea" atau direktori "app"? Saya baru saja memposting penjelasan Q .. stackoverflow.com/questions/23786361/… Ahh .. Sekarang saya melihat "Pilih direktori / modul pemfaktoran ulang" ketika saya mengklik folder "aplikasi" .... hoy caramba!
Fattie
@JoeBlow klik kanan di packagebawah folderjava
Abu Shumon
"Android Studio, yang sejujurnya harus Anda gunakan" Mengingat pertanyaan itu diajukan pada tahun 2010, sementara AS bahkan tidak diumumkan hingga 2013, apalagi dirilis sebagai versi stabil (2014). Memang, pengguna saat ini harus menggunakan AS. :-)
LarsH
8

Tanpa Eclipse:

  1. Ubah nama paket dan nama Aktivitas di AndroidManifext.xml dan di mana pun itu muncul di file .xml (nama tampilan kustom, dll)

  2. Perbarui pernyataan impor paket di semua file sumber

  3. Ubah nama semua folder agar sesuai dengan nama paket. Lokasi folder:
    a. bin / kelas
    b. gen
    c. src

  4. Perbarui nama proyek di build.xml (atau nama apk Anda tidak akan berubah)

  5. Hapus semua file .class di bin / class / com / example / myapp / (jika Anda melewati langkah ini, file tidak ditulis ulang selama pembuatan dan dex memberikan banyak masalah saat memproses kesalahan "nama kelas tidak cocok dengan jalur"

  6. Hapus gen / com / example / myapp / BuildConfig.java (Saya tidak tahu mengapa menghapus BuildConfig.class pada langkah 3a tidak menyebabkan dex memperbarui jalurnya ke ini, tetapi sampai saya menghapus BuildConfig.java, itu terus membuat ulang gen / com / oldapp_example / oldapp dan meletakkan BuildConfig.class di sana. Saya tidak tahu mengapa R.java dari lokasi yang sama tidak mengalami masalah ini. Saya curiga BuildConfig.java dibuat secara otomatis dalam pra-kompilasi tetapi R.java tidak)

6 langkah di atas adalah apa yang saya lakukan untuk mengubah nama paket saya dan mendapatkan * build yang sukses. Mungkin ada cara yang lebih baik untuk menangani langkah 5 dan 6 melalui perintah dex untuk memperbarui jalur, atau mungkin dengan mengedit class.dex.d di direktori root proyek. Saya tidak terbiasa dengan dex atau jika tidak apa-apa untuk menghapus / mengedit class.dex.d jadi saya pergi dengan metode menghapus file .class yang saya tahu akan dibuat ulang di build. Saya kemudian memeriksa kelas.dex.d untuk melihat apa yang masih perlu diperbarui.

* Tidak ada kesalahan atau peringatan yang tersisa di build saya KECUALI dex dan apkbuilder keduanya menyatakan "Ditemukan File Target yang Dihapus" tanpa spesifik tentang apa file itu. Tidak yakin apakah ini muncul di setiap build, apakah itu ada di sana sebelum saya mengacaukan nama paket saya, atau apakah itu akibat dari penghapusan saya dan saya melewatkan satu langkah pun.

clusterflux
sumber
Saya menyelesaikan penggantian nama seperti yang Anda lakukan, tetapi dengan penyederhanaan: hapus folder bin dan gen. Juga saya tidak dapat mengimpor proyek yang diubah namanya di Eclipse sampai saya mengubah file tersembunyi .project, itu memiliki nama proyek lama di bawah <name>
Jose_GD
6

Ikuti langkah ini:-

  • Klik kanan pada proyek tersebut.
  • Buka alat Android.
  • Klik Ubah Nama Paket Aplikasi.
  • Ubah nama paket aplikasi.

SELESAI

Deepak Sharma
sumber
1
Ini berfungsi, tetapi Anda juga harus memfaktorkan ulang nama paket folder src dasar.
ashishduh
6

Cara tercepat untuk melakukannya di Android Studio 1.3 :

  1. Ubah nama paket di manifest
  2. Pergi ke Module Settings[F4]-> Flavors, Application Idtuliskan nama yang sama.
  3. Buat paket baru dengan nama itu: [right-click-> new-> package]
  4. Pilih semua file java proyek Anda dan kemudian lanjutkan [Right-click-> Refactor-> Move-> {Select package}-> Refactor]

PS Jika Anda tidak mengikuti perintah ini, Anda dapat mengubah semua file java satu per satu dengan impor baru dan banyak kesalahan waktu kompilasi, jadi urutannya sangat penting.

Movsar Bekaev
sumber
1
Dengan metode ini, R tetap tidak berubah oleh refactoring. jadi impor com.app.myapp.R TIDAK berubah ke nama paket baru, dan Anda harus mengambil satu per satu ...
OWADVL
@OWADVL, R berubah secara otomatis ketika Anda memindahkan file ke paket baru, Android Studio secara otomatis melakukan pembangunan kembali ketika Anda memindahkan file .java, saya melakukan hal ini setiap hari dan selama saya menjaga urutan ini, saya tidak pernah mengubah apa pun di file .java secara manual
Movsar Bekaev
Namun di Eclipse, kita bisa mengubah ID paket aplikasi, tanpa mengubah paket semua kodenya. Wizard akan mengganti nama referensi BuildConfig & R untuk Anda. Saya bingung bahwa hal yang sama tidak ada di AS.
Tom
5

Mengubah nama paket sangat menyebalkan. Sepertinya metode yang berbeda berhasil untuk orang yang berbeda. Solusi saya cepat dan bebas dari kesalahan. Sepertinya gerhana tidak perlu dibersihkan atau disetel ulang.

  1. Klik kanan pada nama paket lalu Refractor> Rename.
  2. Klik kanan pada nama proyek Alat Android> Ubah Nama Paket Aplikasi.
  3. Tetapkan nama paket secara manual dalam Manifes yang belum diubah oleh langkah sebelumnya.
erdomester
sumber
3

Bernstein memiliki metodenya, gunakan alat Eclipse, "Ganti Nama Paket Aplikasi", Anda mungkin harus melakukan pembersihan bahkan setelah melakukannya. Selain itu, Eclipse terkadang kehilangan jejak saat Anda membuat perubahan pada sebuah proyek. Anda mungkin harus menggunakan alat "Proyek Bersih" (di bawah menu "Proyek".) Jika tidak berhasil, Anda mungkin harus menutup dan memulai ulang Eclipse. Solusi Voo-doo, tetapi Eclipse bisa seperti itu.

m0j0
sumber
3

Saya menemukan solusi termudah adalah dengan menggunakan Regexxer untuk mengganti "com.package.name" dengan "com.newpackage.name", kemudian mengganti nama direktori dengan benar. Sangat mudah, sangat cepat.

robisaks
sumber
3
  1. Pertama, ubah nama paket di file manifes
  2. Faktor ulang> Ubah nama paket dalam srcfolder dan beri tanda centangrename subpackages
  3. Hanya itu yang Anda lakukan.
Sathirar
sumber
Saya mencoba menggunakan Alat Android Marc Bernstein-> Ganti Nama Paket Aplikasi, tetapi itu memberi saya kesalahan. Ini lebih sederhana, meskipun saya harus memperbaiki beberapa hal setelah perubahan
david-hoze
2

Ada juga solusi lain untuk pengguna tanpa Eclipse, cukup ubah atribut paket di tag <manifest> di AndroidManifest.xml, dengan mengganti nama paket lama yang digunakan dengan yang baru. Catatan: Anda juga harus menyesuaikan semua pernyataan impor terkait dan folder terkait secara manual dalam proyek Anda.

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="new.package.name"
    .....
</manifest>
Seperti kamu
sumber
1

Alternatif:

  1. Buka AndroidManifest.xml
  2. Ubah paket = "NAMA BARU" dalam tag manifes.
MapleLover
sumber
1
  1. Klik kanan pada Proyek> Alat Android> Ganti Nama Paket Aplikasi

  2. Buka src dan klik kanan pada paket utama Anda> Refactor> Rename

  3. Buka file manifes dan ubah nama paket Anda.

ritesh4326
sumber
1

Saya hanya kehilangan beberapa jam mencoba semua solusi. Saya yakin, masalah ada dalam kode saya - apk dimulai tetapi beberapa kesalahan saat bekerja dengan kelas dan aktivitas yang berbeda.

Satu-satunya cara bekerja dengan proyek saya:

  1. ganti namanya - file / rename dan centang semua kotak centang
  2. memeriksa tempat-tempat yang tidak berganti nama, saya memiliki salah satu tata letak nama lama masih di alat: konteks = "..
  3. buat ruang kerja baru
  4. impor proyek ke ruang kerja baru

Bagi saya itu berhasil, hanya solusi.

Bung
sumber
1

Jadi, menggunakan IntelliJ dengan plugin Android (Studio) adalah: Saya pergi ke AndroidManifest.xmlatas dan mengubah nama paket dengan mengklik kanan -> Refactor -> ganti nama. Nama paket kami saat itu memiliki empat bagian a.b.c.d, yang baru saja a.b.c. Jadi saya mengganti nama tiga yang pertama. Lalu saya pergi ke direktori sumber yang dihasilkan ( app\build\generated\source\r\development\debug\a\b\c\d), Rkelas klik kanan dan Refactor-> Pindahkan [d] ke satu paket yang lebih tinggi. Sama dengan BuildConfigdi app\build\generated\source\buildConfig\development\debug\a\b\c\d.

Dengan menggunakan Refactor-> Move, IntelliJ memperbarui semua referensi ke BuildConfigdan R.

Akhirnya saya memperbarui semua applicationId [s] yang saya temukan di gradle.build yang saya temukan. Saya menekan Clean Project, Make and Rebuild Project. Menghapus aplikasi dari ponsel saya dan menekan "Mainkan". Semuanya berhasil sehingga pemfaktoran ulang mudah dan cukup cepat.

Raul Pinto
sumber
1

Di Android Studio 1.2.2 Katakanlah jika Anda ingin mengubah com.example.myappke org.mydomain.mynewapp Anda dapat mengikuti langkah-langkah di setiap direktori seperti yang ditampilkan di screen shot di bawah ini. Ini akan memberi Anda opsi pratinjau sehingga Anda dapat melihat pratinjau sebelum membuat perubahan apa pun.

Pergi ke Refactor -> Renamedan berikan nama baru Anda. Anda harus melakukannya untuk setiap folder, misalnya untuk com, example, dan myapp. Ini akan secara otomatis memperbarui impor sehingga Anda tidak perlu khawatir tentang itu. masukkan deskripsi gambar di sini

Perbarui juga file build.gradleyang tidak diperbarui secara otomatis.

defaultConfig {
        applicationId "org.mydomain.mynewapp" //update the new package name here
        minSdkVersion 15
        targetSdkVersion 22
        versionCode 1
        versionName "1.0"
    }

Setelah itu akan diminta untuk syncmelakukannya. Maka semuanya akan baik-baik saja. Saya dapat mengunggah APK saya ke toko google setelah ini. Pastikan Anda telah menandatangani aplikasi Anda untuk mengunggahnya ke toko.

Krishnadas PC
sumber
0
  1. Di studio Android Anda, di panel proyek, ada ikon roda gigi "Klik di atasnya".
  2. Hapus centang Paket Tengah Kosong Kompak
  3. Sekarang direktori paket telah dipecah, yaitu direktori individu.
  4. Pilih direktori yang ingin Anda ganti namanya.
  5. Klik kanan pada direktori tersebut.
  6. Pilih refactor dan kemudian rename option.
  7. Kotak dialog telah terbuka, ganti namanya.
  8. Setelah memberi nama baru, klik Refactor.
  9. Kemudian klik Do Refactor di bagian bawah.
  10. Kemudian android studio akan memperbarui semua perubahan.
  11. Sekarang buka file build.gradle dan perbarui applicationId & sinkronkan.
  12. Sekarang masuk ke file manifest dan ganti nama paketnya.
  13. Bangun kembali Proyek Anda.
  14. Kamu selesai :)
Hanisha
sumber