Как изменить имя пакета приложения Android - PullRequest
133 голосов
/ 26 октября 2010

Мое хранилище ключей повреждено, поэтому Android Market требует от меня переименования приложения и его повторной отправки.Однако всякий раз, когда я иду редактировать имена пакетов в Манифесте и во всех файлах, это вызывает у меня массу ошибок.

Как правильно изменить имя приложения?

Ответы [ 18 ]

302 голосов
/ 26 октября 2010

В Eclipse есть способ легко изменить имя пакета. Щелкните правой кнопкой мыши свой проект, прокрутите вниз до «Инструменты Android» и выберите «Переименовать пакет приложений».

102 голосов
/ 26 октября 2010

Если вы используете Eclipse, вы можете попробовать эти инструкции с сайта разработчика Android.Они специально для образца GestureBuilder, но должны применяться к любому приложению, насколько я могу сказать:

[H] вот как вы можете сделать это в Eclipse:

  1. Щелкните правой кнопкой мыши имя пакета (src/com.android.gesture.builder).
  2. Выберите Refactor> Rename и измените имя, например, на com.android.gestureNEW.builder.
  3. Открыть файл манифеста.Внутри тега <manifest> измените имя пакета на com.android.gestureNEW.builder.
  4. Откройте каждый из двух файлов Activity и выполните Ctrl-Shift-O, чтобы добавить отсутствующие пакеты импорта, затем сохраните каждый файл.Запустите приложение GestureBuilder на эмуляторе.

Также убедитесь, что вы не забыли переименовать сам пакет вместе со ссылками на него в файлах.В Eclipse вы можете увидеть имя пакета в окне проводника файлов / в виде дерева с левой стороны.По моему опыту, Eclipse может иногда быть немного привередливым и ненадежным (например, оставляя за собой случайные ссылки на старое имя пакета).

52 голосов
/ 07 февраля 2012

Вот как вы можете сделать это в Eclipse:

  1. Щелкните правой кнопкой мыши имя пакета (src/com.android.gesture.builder).
  2. Выберите Refactor > Rename и измените имя, например, на com.android.gestureNEW.builder.
  3. Открыть файл манифеста. Внутри тега <manifest> измените имя пакета на com.android.gestureNEW.builder.
  4. Откройте каждый из двух Activity файлов и выполните Ctrl + Shift + O , чтобы добавить отсутствующие пакеты импорта, затем сохраните каждый файл.
  5. Запустите приложение GestureBuilder на эмуляторе.

Ссылка на пост

Обновление супер простой способ щелкните правой кнопкой мыши на вашем проекте ... enter image description here

11 голосов
/ 11 октября 2013

В Android Studio , которую, честно говоря, вам следует использовать, измените имя пакета на right-clicking в имени пакета в project structure -> Refactor -> Rename...

Затем он дает возможность переименовать каталог или пакет. Выберите пакет. Каталог должен следовать примеру. Введите имя нового пакета и нажмите «Рефакторинг». Это изменит весь импорт и удалит лишний импорт для вас. Вы можете даже исправить это в комментариях, строках и т. Д.

И наконец , соответственно измените имя пакета в вашем AndroidManifest.xml вверх. В противном случае вы будете получать ошибки везде, жалуясь на Р. что бы то ни было.

Еще одно очень полезное решение

Сначала создайте новый пакет с нужным именем by right clicking on the папка java -> new -> package.

Затем выберите и перетащите все ваши классы в новый пакет. AndroidStudio будет пересматривать имя пакета везде.

После этого: в build.gradle вашего приложения добавьте / отредактируйте идентификатор приложения с новым. т.е. (com.a.bc в моем случае):

defaultConfig {
    applicationId "com.a.bc"
    minSdkVersion 13
    targetSdkVersion 19
}

Оригинальный пост и больше комментариев здесь

8 голосов
/ 04 января 2013

без затмения:

  1. Изменить имя пакета и имена действий в AndroidManifext.xml и в других местах, где он отображается в файлах .xml (имена пользовательских представлений и т. Д.)

  2. Обновление оператора импорта пакета для всех исходных файлов

  3. Переименуйте все папки в соответствии с именем пакета. Расположение папок:
    а. бен / классы
    б. ген
    с. ЦСИ

  4. Обновите имя проекта в build.xml (или имя вашего apk не изменится)

  5. Удалите все файлы .class в bin / classes / com / example / myapp / (если вы пропустите этот шаг, файлы не будут перезаписаны во время сборки, а dex вызовет кучу проблем при обработке), имя класса делает «Не совпадают пути» ошибки

  6. Удалите gen / com / example / myapp / BuildConfig.java (я не знаю, почему удаление BuildConfig.class на шаге 3a не привело к тому, что dex обновил свой путь к этому, но пока я не удалил BuildConfig. Ява продолжала воссоздавать gen / com / oldapp_example / oldapp и помещать туда BuildConfig.class. Я не знаю, почему R.java из того же места не имеет этой проблемы. Я подозреваю, что BuildConfig.java автоматически генерируется в pre -компилировать но R.java нет)

Вышеуказанные 6 шагов - это то, что я сделал, чтобы изменить имя моего пакета и получить * успешную * сборку. Может быть лучший способ обработать шаги 5 и 6 с помощью команд dex для обновления путей, или, возможно, отредактировав classes.dex.d в корневом каталоге проекта. Я не знаком с dex или, если все в порядке, удаляйте / редактируйте classes.dex.d, поэтому я выбрал метод удаления файлов .class, который, как я знаю, будет восстановлен в сборке. Затем я проверил classes.dex.d, чтобы увидеть, что еще нужно обновить.

* В моей сборке не осталось ошибок или предупреждений, КРОМЕ ДЭКС и apkbuilder оба сообщают «Найдено удаленный целевой файл» без каких-либо подробностей о том, что это за файл. Не уверен, будет ли это отображаться в каждой сборке, было ли это там до того, как я испортил имя своего пакета, или это результат моих удалений, и я пропускаю шаг.

6 голосов
/ 02 сентября 2015

Самый быстрый способ сделать это в Android Studio 1.3 :

  1. Изменить название пакета на manifest
  2. Перейти к Module Settings[F4]-> Flavors, в Application Id написать то же имя.
  3. Создать новый пакет с таким именем: [right-click-> new-> package]
  4. Выберите все Java-файлы вашего проекта и затем продолжите [Right-click-> Refactor-> Move-> {Select package}-> Refactor]

P.S. Если вы не будете следовать этому порядку, вы можете изменить все java-файлы один за другим с новым импортом и кучей ошибок времени компиляции, поэтому порядок очень важен.

6 голосов
/ 25 сентября 2013

Выполните следующие действия: -

  • Щелкните правой кнопкой мыши по проекту.
  • Перейти к инструментам Android.
  • Нажмите Переименовать пакет приложений.
  • Изменить имя пакета приложения.

DONE

5 голосов
/ 12 февраля 2012

Изменение названия пакета - боль в заднице.Похоже, разные методы работают для разных людей.Мое решение быстро и без ошибок.Похоже, что очистка или сброс затмения не требуются.

  1. Щелкните правой кнопкой мыши имя пакета, затем Refractor> Rename.
  2. Щелкните правой кнопкой мыши имя проекта Android tools> Rename Application Package.
  3. Вручную задайте имена пакетов в манифесте, которые не были изменены предыдущими шагами.
3 голосов
/ 29 декабря 2012
  1. Fist изменить имя пакета в файле манифеста
  2. Re-factor> Переименовать имя пакета в папке src и поставить галочку для rename subpackages
  3. Это все, что вы сделали.
3 голосов
/ 12 августа 2011

Я обнаружил, что самым простым решением было использовать Regexxer , чтобы заменить "com.package.name" на "com.newpackage.name", а затем переименовать каталоги правильно. Супер просто, супер быстро.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...