У мене є рішення, засноване на відповіді @ Чернів (для мене працює macOS). Дві відмінності: у папці java є Main2Activity.java, в який я роблю те саме, і я не переймаюся дзвінками.
У будь-якому випадку, моє рішення робить те, що робить Чернів, за винятком того, що я створив скрипт bash shell для нього, оскільки будую декілька додатків за допомогою одного набору коду і хочу легко змінювати ім'я пакета щоразу, коли запускаю свої npm-скрипти.
Ось сценарій bash, який я використав. Вам потрібно буде змінити пакетName, який ви хочете використовувати, і додати до нього все, що завгодно ... але ось основи. Ви можете створити .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 біля нижньої частини файлу java. У коментарі є слово "пакет". Через те, як працює сценарій, він приймає будь-який рядок із словом «пакет» у ньому та замінює його. Через це цей сценарій не може бути захищеним у майбутньому, оскільки може бути те саме слово, яке використовується десь в іншому місці.
Другий застереження: перші 3 команди sed редагують файли java з каталогу, який називається javaFiles. Я створив цей каталог сам, оскільки хочу мати один набір файлів java, які копіюються звідти (оскільки я можу додати до нього нові пакети в майбутньому). Ви, мабуть, захочете зробити те саме. Тому скопіюйте всі файли з папки java (пройдіть її підпапки, щоб знайти фактичні файли java) та покладіть їх у нову папку під назвою javaFiles.
Третя відмова: Вам потрібно буде відредагувати змінну packageName, щоб вона відповідала шляхам у верхній частині сценарію та знизу (com.MyWebsite.MyAppName to com / MyWebsite / MyAppName)