Tôi có một giải pháp dựa trên câu trả lời của @ Cherniv (hoạt động trên macOS cho tôi). Hai điểm khác biệt: Tôi có một Main2Activity.java trong thư mục java mà tôi làm điều tương tự và tôi không bận tâm khi gọi ./gradlew sạch vì có vẻ như trình đóng gói gốc phản ứng tự động thực hiện.
Dù sao, giải pháp của tôi thực hiện những gì của Cherniv, ngoại trừ tôi đã tạo tập lệnh bash shell cho nó vì tôi đang xây dựng nhiều ứng dụng bằng một bộ mã và muốn có thể dễ dàng thay đổi tên gói bất cứ khi nào tôi chạy tập lệnh npm của mình.
Đây là kịch bản bash tôi đã sử dụng. Bạn sẽ cần sửa đổi tên gói bạn muốn sử dụng và thêm bất cứ thứ gì bạn muốn vào nó ... nhưng đây là những điều cơ bản. Bạn có thể tạo tệp .sh, cấp quyền và sau đó chạy tệp đó từ cùng thư mục bạn chạy Reac -igen từ:
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
TUYÊN BỐ TỪ CHỐI: Trước tiên, bạn cần chỉnh sửa nhận xét của MainApplication.java ở gần cuối tệp java. Nó có từ 'gói' trong bình luận. Do cách tập lệnh hoạt động, nó lấy bất kỳ dòng nào có từ 'gói' trong đó và thay thế nó. Bởi vì điều này, kịch bản này có thể không được chứng minh trong tương lai vì có thể có cùng một từ được sử dụng ở một nơi khác.
Tuyên bố miễn trừ trách nhiệm thứ hai: 3 lệnh sed đầu tiên chỉnh sửa các tệp java từ một thư mục có tên javaFiles. Tôi đã tự tạo thư mục này vì tôi muốn có một tập các tệp java được sao chép từ đó (vì tôi có thể thêm các gói mới vào nó trong tương lai). Bạn có thể sẽ muốn làm điều tương tự. Vì vậy, sao chép tất cả các tệp từ thư mục java (đi qua các thư mục con của nó để tìm các tệp java thực tế) và đặt chúng vào một thư mục mới có tên javaFiles.
Tuyên bố miễn trừ trách nhiệm thứ ba: Bạn sẽ cần chỉnh sửa biến góiName để phù hợp với các đường dẫn ở đầu tập lệnh và dưới cùng (com.MyWebsite.MyAppName thành com / MyWebsite / MyAppName)