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

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

Каков правильный способ изменения имени приложения?

Ответ 1

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

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

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

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

Ответ 2

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

Ответ 3

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

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

Ссылка на сообщение

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

Ответ 4

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

Затем он дает возможность переименования каталога или пакета. Выберите пакет. Справочник должен следовать примеру. Введите новое имя пакета и нажмите "Refactor". Он изменит весь импорт и удалит избыточный импорт для вас. Вы даже можете исправить это для вас в комментариях и строках и т.д.

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

Другое очень полезное решение

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

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

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

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

Оригинальная публикация и комментарии здесь

Ответ 5

Без Eclipse:

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

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

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

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

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

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

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

* В моей сборке нет ошибок или предупреждений. EXCEPT dex и apkbuilder устанавливают состояние "Найденный удаленный целевой файл" без каких-либо особенностей того, что этот файл. Не уверен, что это отображается в каждой сборке, если она была там до того, как я испортился с моим именем пакета, или если это результат моих удалений, и мне не хватает шага.

Ответ 6

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

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

DONE

Ответ 7

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

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

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

Ответ 8

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

  • Щелкните правой кнопкой мыши имя пакета, затем Refractor > Rename.
  • Щелкните правой кнопкой мыши название проекта Android. > Переименуйте пакет приложений.
  • Вручную установите имена пакетов в манифесте, которые не были изменены предыдущими шагами.

Ответ 9

  • Fist изменить имя пакета в файле манифеста
  • Re-factor > Переименуйте имя пакета в папку src и поставьте галочку для rename subpackages
  • Это все, что вы сделали.

Ответ 10

У Бернштейна есть метод, используйте инструмент Eclipse, "Переименуйте пакет приложений", вам, возможно, придется выполнить некоторую очистку даже после факта. Кроме того, Eclipse иногда теряет смысл, когда вы вносите изменения в проект. Возможно, вам придется использовать инструмент "Чистый проект" (в меню "Проект".) Если это не сработает, возможно, вам придется закрыть и перезапустить Eclipse. Voo-doo, но Eclipse может быть таким.

Ответ 11

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

Ответ 12

Существует также другое решение для пользователей без Eclipse, просто измените атрибут package в <manifest> в AndroidManifest.xml, заменив прежнее имя пакета, используемое новым. Примечание.. Вы также должны вручную настроить все связанные операторы импорта и связанные с ними папки в своем проекте.

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="new.package.name"
    .....
</manifest>

Ответ 13

Альтернатива:

  • Открыть AndroidManifest.xml
  • Изменить пакет = "NEW NAME" в теге манифеста.

Ответ 14

  • Щелкните правой кнопкой мыши по проекту > Инструменты Android > Переименуйте пакет приложений

  • Перейдите в src и щелкните правой кнопкой мыши на основном пакете > Рефакторинг > Переименовать

  • Перейдите в файл манифеста и измените имя своего пакета.

Ответ 15

Я просто потерял несколько часов, пытаясь найти все решения. Я был уверен, проблема в моем коде - запуск apk, но некоторые ошибки при работе с разными классами и действиями.

Только способ работы с моим проектом:

  • переименуйте его - файл/переименовать и отметьте все флажки
  • проверьте, не переименованные места, у меня было в одном из старых старое имя все еще в инструментах: context = "..
  • создать новое рабочее пространство
  • импортировать проект в новое рабочее пространство

Для меня это работает, только решение.

Ответ 16

В Android Studio 1.2.2 Скажем, если вы хотите изменить com.example.myapp на org.mydomain.mynewapp Вы можете выполнить шаги в каждом из каталогов, как показано на следующем снимке экрана. Он предоставит вам возможность предварительного просмотра, чтобы вы могли предварительно просмотреть все изменения.

Перейдите к Refactor -> Rename и укажите свое новое имя. Вы должны сделать это для каждой из папок, например, для com, example и myapp. Он автоматически обновит импорт, чтобы вам не пришлось беспокоиться об этом. введите описание изображения здесь

Также обновите файл build.gradle, который не обновляется автоматически.

defaultConfig {
        applicationId "org.mydomain.mynewapp" //update the new package name here
        minSdkVersion 15
        targetSdkVersion 22
        versionCode 1
        versionName "1.0"
    }

После этого он попросит sync сделать это. Тогда все будет хорошо. После этого я могу загрузить APK в Google Store. Убедитесь, что вы подписали приложение, чтобы загрузить его в магазин.

Ответ 17

Итак, использование IntelliJ с плагином Android (Studio) было следующим: я пошел в AndroidManifest.xml сверху и изменил имя пакета, щелкнув правой кнопкой мыши → Refactor → rename. У нашего имени пакета было четыре части a.b.c.d, а новая - только a.b.c. Поэтому я переименовал первые три. Затем я отправился в каталог сгенерированных источников (app\build\generated\source\r\development\debug\a\b\c\d), щелкнул правой кнопкой мыши R класс и Refactor- > Move [d] до одного пакета выше. То же самое с BuildConfig в app\build\generated\source\buildConfig\development\debug\a\b\c\d.

Используя Refactor- > Move, IntelliJ обновляет все ссылки на BuildConfig и R.

Наконец, я обновил все applicationId [s], которые я нашел в gradle.build. Я ударил проект Clean Project, Make and Rebuild. Удалите приложение с моего телефона и нажмите "Играть". Все это сработало, поэтому рефакторинг был простым и довольно быстрым.

Ответ 18

Ниже приведен краткий шаг за шагом, чтобы изменить название приложения Android App в Android Studio... fooobar.com/info/23380/...