Tengo una solución basada en la respuesta de @ Cherniv (funciona en macOS para mí). Dos diferencias: tengo un Main2Activity.java en la carpeta java con el que hago lo mismo, y no me molesto en llamar a ./gradlew clean ya que parece que el paquete react-native lo hace automáticamente de todos modos.
De todos modos, mi solución hace lo que hace Cherniv, excepto que hice un script de shell bash para ello, ya que estoy construyendo múltiples aplicaciones usando un conjunto de código y quiero poder cambiar fácilmente el nombre del paquete cada vez que ejecuto mis scripts npm.
Aquí está el script bash que utilicé. Tendrá que modificar el packageName que desea usar y agregar cualquier otra cosa que desee ... pero aquí están los conceptos básicos. Puede crear un archivo .sh, otorgar permiso y luego ejecutarlo desde la misma carpeta desde la que ejecuta 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
DESCARGO DE RESPONSABILIDAD: Primero deberá editar el comentario de MainApplication.java cerca del final del archivo java. Tiene la palabra 'paquete' en el comentario. Debido a cómo funciona el script, toma cualquier línea con la palabra 'paquete' y lo reemplaza. Debido a esto, es posible que este script no esté preparado para el futuro, ya que podría usarse la misma palabra en otro lugar.
Segundo descargo de responsabilidad: los primeros 3 comandos sed editan los archivos java desde un directorio llamado javaFiles. Creé este directorio yo mismo porque quiero tener un conjunto de archivos java que se copian desde allí (ya que podría agregarle nuevos paquetes en el futuro). Probablemente quieras hacer lo mismo. Copie todos los archivos de la carpeta java (vaya a través de sus subcarpetas para encontrar los archivos java reales) y colóquelos en una nueva carpeta llamada javaFiles.
Tercer descargo de responsabilidad: deberá editar la variable packageName para que esté en línea con las rutas en la parte superior del script y en la parte inferior (com.MyWebsite.MyAppName para com / MyWebsite / MyAppName)