ฉันมีทางออกตามคำตอบของ @ Cherniv (ทำงานบน macOS สำหรับฉัน) ความแตกต่างสองอย่าง: ฉันมี Main2Activity.java ในโฟลเดอร์ java ที่ฉันทำสิ่งเดียวกันกับและฉันไม่ต้องโทร. / gradlew ทำความสะอาดเพราะดูเหมือนว่าผู้ทำปฏิกิริยาตอบสนองพื้นเมืองทำโดยอัตโนมัติ
อย่างไรก็ตามโซลูชันของฉันทำสิ่งที่ Cherniv ทำยกเว้นฉันสร้างสคริปต์ทุบตีเชลล์ขึ้นมาเพราะฉันสร้างแอพหลายตัวโดยใช้รหัสชุดเดียวและต้องการที่จะสามารถเปลี่ยนชื่อแพ็คเกจได้อย่างง่ายดายทุกครั้งที่ฉันเรียกใช้สคริปต์ npm
นี่คือสคริปต์ทุบตีที่ฉันใช้ คุณจะต้องแก้ไขชื่อแพ็คเกจที่คุณต้องการใช้และเพิ่มสิ่งอื่นที่คุณต้องการ ... แต่นี่คือพื้นฐาน คุณสามารถสร้างไฟล์. sh ให้สิทธิ์แล้วเรียกใช้จากโฟลเดอร์เดียวกันกับที่คุณเรียกใช้ react-native จาก:
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
การปฏิเสธความรับผิด: คุณจะต้องแก้ไขความคิดเห็นของ MainApplication.java ใกล้กับด้านล่างของไฟล์ java ก่อน มันมีคำว่า 'แพ็คเกจ' ในความคิดเห็น เนื่องจากวิธีการทำงานของสคริปต์มันใช้บรรทัดใด ๆ กับคำว่า 'package' ในนั้นและแทนที่มัน ด้วยเหตุนี้สคริปต์นี้อาจไม่ได้รับการพิสูจน์ในอนาคตเนื่องจากอาจมีคำเดียวกันกับที่ใช้ในที่อื่น
ข้อสงวนสิทธิ์ที่สอง: คำสั่ง 3 คำสั่งแรกที่แก้ไขไฟล์ java จากไดเรกทอรีที่เรียกว่า javaFiles ฉันสร้างไดเรกทอรีนี้ด้วยตัวเองเนื่องจากฉันต้องการมีไฟล์ java หนึ่งชุดที่คัดลอกมาจากที่นั่น (เพราะฉันอาจเพิ่มแพ็คเกจใหม่ลงไปในอนาคต) คุณอาจต้องการทำสิ่งเดียวกัน ดังนั้นคัดลอกไฟล์ทั้งหมดจากโฟลเดอร์ java (ผ่านโฟลเดอร์ย่อยเพื่อค้นหาไฟล์ java จริง) และวางไว้ในโฟลเดอร์ใหม่ที่เรียกว่า javaFiles
ข้อสงวนสิทธิ์ประการที่สาม: คุณจะต้องแก้ไขตัวแปร packageName เพื่อให้สอดคล้องกับเส้นทางที่ด้านบนสุดของสคริปต์และด้านล่าง (com.MyWebsite.MyAppName เป็น com / MyWebsite / MyAppName)