Saya punya solusi berdasarkan jawaban @ Cherniv (berfungsi pada MacOS untuk saya). Dua perbedaan: Saya memiliki Main2Activity.java di folder java yang saya lakukan hal yang sama, dan saya tidak repot-repot memanggil ./gradlew clean karena sepertinya packager asli-reaksi melakukan itu secara otomatis.
Bagaimanapun, solusi saya melakukan apa yang dilakukan Cherniv, kecuali saya membuat skrip bash shell untuk itu karena saya membangun beberapa aplikasi menggunakan satu set kode dan ingin dapat dengan mudah mengubah nama paket setiap kali saya menjalankan skrip npm saya.
Berikut ini skrip bash yang saya gunakan. Anda harus memodifikasi packageName yang ingin Anda gunakan, dan menambahkan apa pun yang Anda inginkan ... tapi inilah dasarnya. Anda dapat membuat file .sh, memberikan izin, dan kemudian menjalankannya dari folder yang sama dengan tempat Anda menjalankan reaksi asli:
rm -rf ./android/app/src/main/java
mkdir -p ./android/app/src/main/java/com/MyWebsite/MyAppName
packageName="com.MyWebsite.MyAppName"
sed -i '' -e "s/.*package.*/package "$packageName";/" ./android/app/src/main/javaFiles/Main2Activity.java
sed -i '' -e "s/.*package.*/package "$packageName";/" ./android/app/src/main/javaFiles/MainActivity.java
sed -i '' -e "s/.*package.*/package "$packageName";/" ./android/app/src/main/javaFiles/MainApplication.java
sed -i '' -e "s/.*package=\".*/ package=\""$packageName"\"/" ./android/app/src/main/AndroidManifest.xml
sed -i '' -e "s/.*package = '.*/ package = '"$packageName"',/" ./android/app/BUCK
sed -i '' -e "s/.*applicationId.*/ applicationId \""$packageName"\"/" ./android/app/build.gradle
cp -R ./android/app/src/main/javaFiles/ ./android/app/src/main/java/com/MyWebsite/MyAppName
DISCLAIMER: Anda harus mengedit komentar MainApplication.java di dekat bagian bawah file java terlebih dahulu. Itu memiliki kata 'paket' di komentar. Karena cara kerja skrip, dibutuhkan baris apa pun dengan kata 'paket' di dalamnya dan menggantikannya. Karena itu, skrip ini mungkin tidak terbukti di masa depan karena mungkin ada kata yang sama yang digunakan di tempat lain.
Penafian Kedua: 3 sed perintah pertama mengedit file java dari direktori yang disebut javaFiles. Saya membuat direktori ini sendiri karena saya ingin memiliki satu set file java yang disalin dari sana (karena saya mungkin menambahkan paket baru ke sana di masa depan). Anda mungkin ingin melakukan hal yang sama. Jadi salin semua file dari folder java (buka subfoldernya untuk menemukan file java yang sebenarnya) dan letakkan di folder baru yang disebut javaFiles.
Penafian Ketiga: Anda harus mengedit variabel packageName agar sejalan dengan jalur di bagian atas skrip dan bawah (com.MyWebsite.MyAppName to com / MyWebsite / MyAppName)