У меня есть решение, основанное на ответе @Cherniv (у меня работает на macOS). Два отличия: у меня есть Main2Activity.java в папке java, с которой я делаю то же самое, и я не беспокоюсь о вызове ./gradlew clean, поскольку похоже, что собственный упаковщик в любом случае делает это автоматически.
В любом случае, мое решение делает то же, что и Чернов, за исключением того, что я создал для него сценарий оболочки bash, поскольку я создаю несколько приложений с использованием одного набора кода и хочу иметь возможность легко изменять имя пакета при каждом запуске сценариев npm.
Вот сценарий bash, который я использовал. Вам нужно будет изменить packageName, который вы хотите использовать, и добавить к нему все, что хотите ... но вот основы. Вы можете создать файл .sh, дать разрешение, а затем запустить его из той же папки, из которой вы запускаете response-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-файла. В комментарии есть слово "пакет". Из-за того, как работает сценарий, он берет любую строку со словом «пакет» и заменяет ее. Из-за этого этот сценарий не может быть адаптирован для будущего, поскольку это же слово может использоваться где-то еще.
Второй отказ от ответственности: первые 3 команды sed редактируют файлы java из каталога с именем javaFiles. Я создал этот каталог сам, так как хочу иметь один набор java-файлов, которые копируются оттуда (так как в будущем я могу добавлять в него новые пакеты). Вы, вероятно, захотите сделать то же самое. Поэтому скопируйте все файлы из папки java (просмотрите ее подпапки, чтобы найти фактические файлы java) и поместите их в новую папку с именем javaFiles.
Третий отказ от ответственности: вам нужно отредактировать переменную packageName, чтобы она соответствовала путям вверху и внизу скрипта (от com.MyWebsite.MyAppName до com / MyWebsite / MyAppName)
person
Kjell
schedule
03.06.2017
npx react-native init MycompanyMyapp
, 2- Измените толькоapplicationId "com.mycompany.myapp"
вandroid/app/build.gradle
. Однако идентификатор приложения и имя пакета не зависят друг от друга - developer.android.com/ studio / build / application-id - person eightyfive   schedule 29.03.2020