Mam rozwiązanie oparte na odpowiedzi @ Cherniv (dla mnie działa na macOS). Dwie różnice: mam plik Main2Activity.java w folderze java, z którym robię to samo, i nie kłopoczę się wywoływaniem ./gradlew czysto, ponieważ wygląda na to, że program do pakowania natywnego reagowania i tak robi to automatycznie.
W każdym razie moje rozwiązanie robi to, co robi Czerniow, z wyjątkiem tego, że stworzyłem dla niego skrypt powłoki bash, ponieważ tworzę wiele aplikacji przy użyciu jednego zestawu kodu i chcę mieć możliwość łatwej zmiany nazwy pakietu za każdym razem, gdy uruchamiam skrypty npm.
Oto skrypt bash, którego użyłem. Będziesz musiał zmodyfikować nazwę pakietu, którego chcesz użyć, i dodać do niego wszystko, co chcesz ... ale oto podstawy. Możesz utworzyć plik .sh, przyznać mu uprawnienia, a następnie uruchomić go z tego samego folderu, z którego uruchamiasz opcję „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
ZRZECZENIE SIĘ: Najpierw musisz edytować komentarz MainApplication.java w dolnej części pliku java. W komentarzu znajduje się słowo „pakiet”. Ze względu na sposób działania skryptu pobiera on dowolny wiersz zawierający słowo „pakiet” i zastępuje go. Z tego powodu ten skrypt może nie zostać sprawdzony w przyszłości, ponieważ to samo słowo może być użyte w innym miejscu.
Drugie zastrzeżenie: pierwsze 3 polecenia sed edytują pliki java z katalogu o nazwie javaFiles. Sam utworzyłem ten katalog, ponieważ chcę mieć jeden zestaw plików java, które są stamtąd kopiowane (ponieważ mogę dodać do niego nowe pakiety w przyszłości). Prawdopodobnie będziesz chciał zrobić to samo. Więc skopiuj wszystkie pliki z folderu java (przejdź przez jego podfoldery, aby znaleźć rzeczywiste pliki java) i umieść je w nowym folderze o nazwie javaFiles.
Trzecie zastrzeżenie: musisz edytować zmienną packageName, aby była zgodna ze ścieżkami na górze i na dole skryptu (com.MyWebsite.MyAppName to com / MyWebsite / MyAppName)