मेरे पास @ चेर्निव के उत्तर (मेरे लिए मैकओएस पर काम करता है) पर आधारित एक समाधान है। दो अंतर: जावा फोल्डर में मेरे पास एक Main2Activity.java है जो मैं एक ही काम करता हूं, और कॉलिंग को परेशान न करें। जब तक यह प्रतिक्रिया-देशी पैकर की तरह लगता है कि /gradlew साफ है, स्वचालित रूप से वैसे भी।
वैसे भी, मेरा समाधान यही करता है कि चेर्निव क्या करता है, सिवाय इसके कि मैंने इसके लिए एक बैश शेल स्क्रिप्ट बनाई है क्योंकि मैं कोड के एक सेट का उपयोग करके कई ऐप बना रहा हूं और जब भी मैं अपनी एनपीएम स्क्रिप्ट चलाता हूं तो आसानी से पैकेज का नाम बदल सकता हूं।
यहाँ बैश स्क्रिप्ट का उपयोग किया गया है। आपको पैकेजनाम को संशोधित करने की आवश्यकता होगी जिसे आप उपयोग करना चाहते हैं, और जो कुछ भी आप इसे करना चाहते हैं उसे जोड़ दें ... लेकिन यहां मूल बातें हैं। आप .sh फ़ाइल बना सकते हैं, अनुमति दे सकते हैं, और फिर उसी फ़ोल्डर से चला सकते हैं जिसे आप प्रतिक्रिया-मूल से चलाते हैं:
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 की टिप्पणी को संपादित करने की आवश्यकता होगी। यह टिप्पणी में 'पैकेज' शब्द है। स्क्रिप्ट कैसे काम करती है, इसकी वजह से यह 'पैकेज' शब्द के साथ कोई भी लाइन लेता है और इसे बदल देता है। इस वजह से, इस लिपि का भविष्य में प्रमाण नहीं हो सकता है क्योंकि हो सकता है कि वही शब्द कहीं और इस्तेमाल किया गया हो।
दूसरा डिस्क्लेमर: पहले 3 sed कमांड्स java फाइल्स को javaFiles नामक डाइरेक्टरी से एडिट करती हैं। जब से मैं वहाँ से कॉपी की गई जावा फ़ाइलों का एक सेट होना चाहता हूँ (जैसा कि मैं भविष्य में इसमें नए पैकेज जोड़ सकता हूँ) मैंने स्वयं इस निर्देशिका को बनाया। आप शायद यही काम करना चाहेंगे। इसलिए जावा फ़ोल्डर से सभी फाइलों को कॉपी करें (वास्तविक जावा फाइलों को खोजने के लिए अपने सबफ़ोल्डर्स के माध्यम से जाएं) और उन्हें नए फ़ोल्डर में डालें जिसे जावाफाइल्स कहा जाता है।
तीसरा डिस्क्लेमर: आपको स्क्रिप्ट और बॉटम के शीर्ष पर पथ के अनुरूप होने के लिए पैकेजनाम वैरिएबल को एडिट करना होगा।