#java #android #gradle
Есть проект A. Его нужно переименовать в проект B. Как правильно нужно переименовать проект и что в нем нужно изменить, чтобы при установке двух apk A и B приложения не затирали друг друга, а были двумя разными приложениями на телефоне?
Ответы
Ответ 1
Необходимо открепить объединение средних имен в пакете, для этого нужно выбрать параметры отображения структуры проекта, которая находится над самой текстурой и убрать галочку "Compact Empty Middle Packages": Когда имена будут откреплены, каждое из имён можно изменить отдельно. Меняем необходимые имена выбрав из контекстного меню Refactor – > Rename или Shift+F6. При появлении предупреждения нажимаем Rename Package. При изменении первого имени пакета – com/ru/ua необходимо нажать “Rename all”, т.к. внутри этой папки расположены паки библиотек, в которых так же необходимо заменить имена. Теперь имя пакета изменено, связи в классах переписаны, но настройки проекта еще не знают, что мы что-то сделали. Для оповещения открываем build.gradle (Module:app), находим в нём следующий участок кода: defaultConfig { applicationId "com.name.test" // изменить на новое нужное minSdkVersion ... targetSdkVersion ... versionCode ... versionName "..." } и изменяем имя пакета на новое. В большинстве случаев Gradle сам определит, что были внесены изменения и предложит синхронизироваться с проектом, показав соответствующее уведомление в правом верхнем углу. Но если этого не произошло, то необходимо выполнить синхронизацию вручную. Для этого отправляемся в меню Tools –> Android –> Sync Project With Gradle Files. Последнее что осталось сделать, так это изменить имя пакета в манифесте, хотя для активностей имена уже будут изменены. Открываем файл манифеста AndroidManifest.xml и в самом верху изменяем имя:// изменить на новое нужное Если после выполнения всех шагов Android Studio не сможет инициализировать R.java, и будут выводиться уведомления Cannot resolve symbol R, то необходимо очистить проект, перейдя в соответствующее меню Build -> Clean Project. Источник Если скучно читать, то посмотрите видео Ответ 2
Предлагаю вашему вниманию простой консольный инструмент на Python3 который решает любую задачу по смене пакета, разработчиком которого я и являюсь: https://github.com/PrincessYork/AndroidProjectRenamer Меняет имя пакетов во всех файлах проекта, создаёт новое дерево папок и перемещает туда файлы. Так что больше не надо пыхтеть с рефакторингом пакетов.
Комментариев нет:
Отправить комментарий