Android 애플리케이션의 패키지 이름을 변경하는 방법


133

내 키 스토어가 손상되었으므로 Android 마켓에서 앱 이름을 바꾸고 다시 제출해야합니다. 그러나 매니페스트와 파일 전체에서 패키지 이름을 편집 할 때마다 많은 오류가 발생합니다.

응용 프로그램 이름을 변경하는 올바른 방법은 무엇입니까?


3
다행히 그들은 2010 년부터 "마법의 변경 패키지 이름 버튼을"추가 - - @Marc 번스타인의 답변을 참조 stackoverflow.com/a/4025633/383414
리처드 르 Mesurier

감사합니다 Richard Le ...
DoruChidean


이것이 3 년 전에 요청되었을 때 복제하기
어려웠습니다

답변:


102

Eclipse를 사용하는 경우 Android 개발자 사이트 에서이 지시 사항 을 시도 할 수 있습니다. 그것들은 GestureBuilder 샘플 전용이지만 내가 말할 수있는 한 모든 응용 프로그램에 적용해야합니다.

[H] Eclipse에서이 작업을 수행하는 방법은 다음과 같습니다.

  1. 패키지 이름 ( src/com.android.gesture.builder)을 마우스 오른쪽 버튼으로 클릭하십시오 .
  2. 리 팩터> 이름 바꾸기를 선택하고 이름을 예를 들어로 변경하십시오 com.android.gestureNEW.builder.
  3. 매니페스트 파일을 엽니 다. <manifest>태그 내에서 패키지 이름을로 변경하십시오 com.android.gestureNEW.builder.
  4. 두 개의 활동 파일을 각각 열고 Ctrl-Shift-O를 수행하여 누락 된 가져 오기 패키지를 추가 한 다음 각 파일을 저장하십시오. 에뮬레이터에서 GestureBuilder 애플리케이션을 실행하십시오.

또한 파일 자체에 대한 참조와 함께 패키지 자체의 이름을 바꾸는 것을 잊지 마십시오. Eclipse에서는 왼쪽의 파일 탐색기 창 / 트리보기에서 패키지 이름을 볼 수 있습니다. 필자의 경험에 따르면 Eclipse는 때때로 약간 까다 롭고 신뢰할 수 없습니다 (예를 들어 이전 패키지 이름에 대한 잘못된 참조를 남겨 둡니다).


이것은 아마도 가장 좋은 방법 일 것입니다. 매직적이고 패키지 이름 변경 버튼이 없습니다.
blindstuff

13
그렇습니다. @Marc Bernstein의 답변을 참조하십시오.
Mark Phillip

원래 질문자가 Java 패키지 이름을 변경해야한다고 생각하지 않습니다. Marc 's가 정답입니다.
mpellegr

첫 번째 단계는 "마우스 오른쪽 버튼 클릭"이 아니며 메뉴에서 "리 팩터"를 선택해야합니다.
Deqing

그리고 app_nameres-> values ​​=> strings.xml에서 변경해야 할 수도 있습니다
Deqing

302

Eclipse에서 패키지 이름을 쉽게 변경하는 방법이 있습니다. 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 Android 도구로 스크롤 한 다음 애플리케이션 패키지 이름 바꾸기를 클릭하십시오.


2
Eldar 's를 사용해 보았지만 효과가 있었지만 이것이 효과가 있다고 확신합니다.
Allen Gingrich

4
정답이지만 현재 ADT가 손상되어 R 클래스에 대한 모든 참조가 중단됩니다. 따라서 각 개별 파일을 클릭하고 "ctrl-shift-o"(또는 Mac의 경우 cmd-shift-o)를 수행하고 새로운 패키지 이름의 R을 선택하십시오 (android.R을 선택하지 마십시오! )를 누른 다음 저장을 누르십시오. ... 그리고 모든 개별 파일에 대해 반복합니다 :(
Adam

@Adam은 우리의 삶을 더 쉽게 만들기 위해 프로젝트를 클릭하고 ctrl + shift + o를 사용하여 모든 클래스 / 파일에서 가져온 참조를 업데이트합니다. : D
Blaze Tama

어리석은 상점 키를 잃어 버렸고 신청서를 다시 게시해야했기 때문에 생명을 구했습니다.
Teoman shipahi

3
새 패키지 또는 폴더와 일치하지 않도록 각 파일의 맨 위에 선언 된 파일 패키지 이름을 찾았습니다. 여전히 이전 패키지 이름이있는 소스 폴더를 마우스 오른쪽 버튼으로 클릭 할 수 있습니다 (최소한 항상 내 것입니다). '리 팩터'를 선택한 다음 '이름 바꾸기'를 선택하고 새 패키지로 이름을 바꿉니다. 그런 다음 eclipse는 폴더와 각 파일의 패키지 선언을 처음부터 수행했던 것처럼 새 패키지 이름으로 이름을 바꿉니다.
Androidcoder

52

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에뮬레이터 에서 응용 프로그램을 실행하십시오 .

게시물 링크

프로젝트를 마우스 오른쪽 버튼으로 클릭하여 매우 쉬운 방법으로 업데이트 하십시오 ... 여기에 이미지 설명을 입력하십시오


2
이것을하는 아주 멋진 방법!
친구

2
더 쉬운 솔루션. ;)
Nomade

12

솔직히 사용해야하는 Android Studio 에서는 패키지 이름을 사용하여 패키지 이름을 변경하십시오 right-clicking.project structure -> Refactor -> Rename...

그런 다음 디렉토리 또는 패키지 이름을 바꾸는 옵션을 제공합니다. 패키지를 선택하십시오. 디렉토리가 따라야합니다. 새 패키지 이름을 입력하고 리 팩터를 클릭하십시오. 모든 가져 오기를 변경하고 중복 가져 오기를 제거합니다. 주석 및 문자열 등으로 수정하도록 할 수도 있습니다.

마지막으로 AndroidManifest.xml에서 패키지 이름을 맨 위로 변경하십시오. 그렇지 않으면 R.whatever에 대해 불평하는 모든 곳에서 오류가 발생합니다.

또 다른 유용한 솔루션

먼저 원하는 이름의 by right clicking on thejava 폴더-> new-> package로 새 패키지를 만듭니다 .`

그런 다음 모든 클래스를 선택하고 새 패키지로 끕니다. AndroidStudio는 어디서나 패키지 이름을 리팩터링합니다.

그 후 : 앱의 build.gradle추가 / 편집 applicationId에서 새로운 것을 추가하십시오. 즉 ( com.a.bc내 경우) :

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

원래 게시물 및 추가 의견은 여기에


이상하게도, 내가 그렇게 할 때, 선택 디렉토리 / 패키지를 제공하지 않습니다 ... "모듈 이름"만 ...
Fattie

1
루트 디렉토리를 마우스 오른쪽 버튼으로 클릭하면 지금도 똑같습니다. 적어도 저에게는 이것이 실제 패키지 이름이 아닙니다. 패키지 이름이 com.a.bc 인 경우 루트 디렉토리 아래에 bc라는 디렉토리가 있어야합니다. 다양한 옵션을 얻을 수있는 곳입니다. 지금은 디렉토리 또는 모듈을 받고 있습니다. 모듈을 사용해보십시오. 어떤 것이 깨지면 언제든지 취소 할 수 있습니다 (Ctrl + z해야합니다).
크레인

고마워 .. 똥, ".idea"디렉토리 또는 "app"디렉토리를 의미합니까? 방금 설명 Q를 게시했습니다. .. stackoverflow.com/questions/23786361 / ... Ahh .. 이제 "app"폴더를 클릭하면 "리팩토링 디렉토리 / 모듈 선택"이 표시됩니다 .... hoy caramba!
Fattie

@JoeBlow package폴더 아래에서 마우스 오른쪽 버튼을 클릭하십시오java
Abu Shumon

"정직하게 사용해야하는 Android Studio"2010 년에이 질문이 제기되었지만 AS는 2013 년까지 발표되지 않았지만 안정적인 빌드 (2014)로 출시되지는 않았습니다. 현재 사용자 는 AS를 사용해야합니다. :-)
LarsH

8

이클립스없이 :

  1. AndroidManifext.xml 및 .xml 파일 (사용자 정의보기 이름 등)에 표시되는 모든 위치에서 패키지 이름 및 활동 이름 변경

  2. 모든 소스 파일에서 패키지 가져 오기 명령문 업데이트

  3. 패키지 이름과 일치하도록 모든 폴더의 이름을 바꾸십시오. 폴더 위치 :
    a. 빈 / 클래스
    b. 세대
    c. src

  4. build.xml에서 프로젝트 이름을 업데이트하십시오 (또는 APK 이름은 변경되지 않습니다)

  5. bin / classes / com / example / myapp /에서 모든 .class 파일을 삭제하십시오 (이 단계를 건너 뛰면 빌드 중에 파일이 다시 작성되지 않고 dex에서 "클래스 이름이 경로와 일치하지 않습니다"오류 처리에 많은 문제점이 발생합니다.

  6. gen / com / example / myapp / BuildConfig.java 삭제 (3a 단계에서 BuildConfig.class를 삭제해도 dex가 경로를 업데이트하지 않는 이유는 모르겠지만 BuildConfig.java를 삭제하기 전까지는 gen /를 다시 생성했습니다. com / oldapp_example / oldapp 및 거기에 BuildConfig.class를 넣는 이유 같은 위치의 R.java에이 문제가없는 이유를 모르겠습니다 .BuildConfig.java가 사전 컴파일에서는 자동 생성되지만 R.java라고 생각합니다. 아니다)

위의 6 단계는 패키지 이름을 변경하고 성공적인 * 빌드를 수행하기 위해 수행 한 작업입니다. 경로를 업데이트하기 위해 dex 명령을 통해 또는 프로젝트의 루트 디렉토리에서 classes.dex.d를 편집하여 5 단계와 6 단계를 처리하는 더 좋은 방법이있을 수 있습니다. 나는 dex에 익숙하지 않거나 classes.dex.d를 삭제 / 편집해도 괜찮다면 빌드에서 재생성되는 .class 파일을 삭제하는 방법을 사용했습니다. 그런 다음 classes.dex.d를 확인하여 여전히 업데이트해야 할 사항을 확인했습니다.

* 내 빌드 EXCEPT dex 및 apkbuilder에 오류 또는 경고가 남아 있지 않은 경우 해당 파일의 내용에 대한 구체적인 설명없이 "삭제 된 대상 파일 발견"상태입니다. 이것이 모든 빌드에 나타나는지, 패키지 이름을 엉망으로 만들기 전에 있었거나 삭제 한 결과 단계가 누락되었는지 확실하지 않습니다.


나는 당신이했던 것처럼 이름 바꾸기를 해결했지만 단순화로 bin과 gen 폴더를 삭제합니다. 또한 숨겨진 파일 .project를 수정할 때까지 Eclipse에서 이름이 바뀐 프로젝트를 가져올 수 없었습니다. 이전 프로젝트 이름은 <name>
Jose_GD

6

다음과 같이하세요:-

  • 프로젝트를 마우스 오른쪽 버튼으로 클릭하십시오.
  • Android 도구로 이동하십시오.
  • 응용 프로그램 패키지 이름 바꾸기를 클릭하십시오.
  • 응용 프로그램 패키지 이름을 변경하십시오.

끝난


1
이것은 작동하지만 기본 src 폴더 패키지 이름을 리팩터링해야합니다.
ashishduh

6

Android Studio 1.3에서 가장 빠른 방법 :

  1. 에서 패키지 이름을 변경하십시오. manifest
  2. 같은 이름 Module Settings[F4]-> FlavorsApplication Id쓰려면 로 이동 하십시오.
  3. 해당 이름으로 새 패키지를 작성하십시오. [right-click-> new-> package]
  4. 프로젝트의 모든 Java 파일을 선택한 다음 계속하십시오. [Right-click-> Refactor-> Move-> {Select package}-> Refactor]

추신 :이 순서를 따르지 않으면 모든 가져 오기 및 많은 컴파일 시간 오류로 모든 Java 파일을 하나씩 변경할 수 있으므로 순서가 매우 중요합니다.


1
이 방법을 사용하면 R은 리팩토링에 의해 변경되지 않습니다. 따라서 import com.app.myapp.R은 새 패키지 이름으로 변경되지 않으며 하나씩 가져와야합니다.
OWADVL

@OWADVL, R은 새 패키지로 파일을 이동할 때 자동으로 변경됩니다 .Android Studio는 .java 파일을 이동할 때 자동으로 재 빌드를 수행합니다. 매일이 작업을 수행 하고이 순서를 유지하는 한 .java 파일에서 아무것도 변경하지 않습니다. 수동
Movsar Bekaev

그러나 Eclipse에서는 모든 코드의 패키지를 변경하지 않고 앱 패키지 ID를 변경할 수 있습니다. 마법사가 BuildConfig & R 참조의 이름을 바꿉니다. 나는 AS에 같은 것이 존재하지 않는다는 것에 당황했다.
Tom

5

패키지 이름을 변경하는 것은 엉덩이에 고통입니다. 다른 사람들에게 다른 방법이 효과가있는 것 같습니다. 내 솔루션은 빠르고 오류가 없습니다. 일식 청소 또는 재설정이 필요하지 않은 것 같습니다.

  1. 패키지 이름을 마우스 오른쪽 버튼으로 클릭 한 다음 Refractor> Rename을 클릭하십시오.
  2. 프로젝트 이름 Android 도구> 애플리케이션 패키지 이름 바꾸기를 마우스 오른쪽 단추로 클릭하십시오.
  3. 이전 단계에서 변경하지 않은 매니페스트에서 패키지 이름을 수동으로 설정하십시오.

3

번스타인은 이클립스 도구 인 "응용 프로그램 패키지 이름 바꾸기"를 사용합니다. 사실 이후에도 정리 작업을 수행해야 할 수도 있습니다. 또한 Eclipse는 프로젝트를 변경할 때 상황을 추적하지 못하는 경우가 있습니다. "프로젝트"메뉴의 "프로젝트 정리"도구를 사용해야 할 수도 있습니다. 그래도 작동하지 않으면 Eclipse를 닫고 다시 시작해야 할 수도 있습니다. 부두 솔루션이지만 이클립스가 그렇게 될 수 있습니다.


3

가장 쉬운 해결책은 Regexxer 를 사용 하여 "com.package.name"을 "com.newpackage.name"으로 바꾸고 디렉토리 이름을 올바르게 바꾸는 것입니다. 매우 쉽고 빠릅니다.


3
  1. 주먹 매니페스트 파일에서 패키지 이름을 변경
  2. 리 팩터> src폴더 의 패키지 이름을 바꾸고rename subpackages
  3. 그게 다야.

Marc Bernstein의 Android Tools-> Rename Application Package를 사용해 보았지만 오류가 발생했습니다. 변경 후 몇 가지 사항을 수정해야했지만 더 간단했습니다.
david-hoze

2

Eclipse가없는 사용자를위한 또 다른 솔루션도 있습니다. AndroidManifest.xml의 <manifest> 태그에서 패키지 속성을 기존 패키지 이름을 새 것으로 바꾸면됩니다. 참고 : 프로젝트에서 모든 관련 가져 오기 문과 관련 폴더를 수동으로 조정해야합니다.

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

1

대안 :

  1. AndroidManifest.xml 열기
  2. 매니페스트 태그 내에서 package = "NEW NAME"을 변경하십시오.

1
  1. 프로젝트> Android 도구> 응용 프로그램 패키지 이름 바꾸기를 마우스 오른쪽 버튼으로 클릭하십시오.

  2. src로 이동하여 기본 패키지를 마우스 오른쪽 버튼으로 클릭하십시오.

  3. 매니페스트 파일로 이동하여 패키지 이름을 변경하십시오.


1

모든 솔루션을 시도하는 데 몇 시간이 걸렸습니다. 나는 내 코드에 문제가 있다고 확신했다-APK 시작하지만 다른 클래스와 활동으로 작업 할 때 약간의 오류가 있습니다.

내 프로젝트로 작업하는 유일한 방법 :

  1. 파일 이름 바꾸기-파일 / 이름 바꾸기 및 모든 확인란을 선택하십시오.
  2. 이름이 바뀌지 않은 장소를 확인하려면 도구에 레이아웃 이전 이름 ​​중 하나가 남아 있습니다 .context = "..
  3. 새로운 작업 공간을 만듭니다
  4. 새 작업 공간으로 프로젝트 가져 오기

나를 위해 그것은 해결책 만 작동합니다.


1

따라서 Android (Studio) 플러그인과 함께 IntelliJ를 사용하는 방법은 다음과 같습니다. AndroidManifest.xml맨 위로 이동하여-> 리 팩터-> 이름 바꾸기를 통해 패키지 이름을 변경했습니다. 우리의 패키지 이름은 네 부분으로 구성되었으며 a.b.c.d, 새로운 것만 a.b.c있습니다. 그래서 처음 3 개의 이름을 바꿨습니다. 그런 다음 생성 된 소스 ( app\build\generated\source\r\development\debug\a\b\c\d) 디렉토리로 R이동 한 후 마우스 오른쪽 버튼으로 클릭 한 클래스를 리 팩터-> 이동 [d]하여 하나의 패키지 위로 이동합니다. 와 같은 BuildConfig에서 app\build\generated\source\buildConfig\development\debug\a\b\c\d.

Refactor-> Move를 사용하여 IntelliJ는 BuildConfig및에 대한 모든 참조를 업데이트합니다 R.

마지막으로 gradle.build에서 찾은 모든 applicationId [s]를 업데이트했습니다. Clean Project, Make and Rebuild Project를 쳤다. 휴대 전화에서 앱을 삭제하고 "재생"을 누르십시오. 리팩토링이 쉽고 빠르기 때문에 모두 해결되었습니다.


1

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 스토어에 업로드 할 수 있습니다. 스토어에 앱을 업로드하기 위해 앱에 서명했는지 확인하십시오.


0
  1. Android 스튜디오의 프로젝트 패널에는 톱니 바퀴 아이콘 "클릭"이 있습니다.
  2. 컴팩트 빈 중간 패키지를 선택 취소하십시오
  3. 이제 패키지 디렉토리가 분리되었습니다 (예 : 개별 디렉토리).
  4. 이름을 바꾸려는 디렉토리를 선택하십시오.
  5. 해당 디렉토리를 마우스 오른쪽 버튼으로 클릭하십시오.
  6. 리 팩터를 선택한 다음 옵션 이름을 바꿉니다.
  7. 대화 상자가 열렸습니다. 이름을 바꾸십시오.
  8. 새 이름을 입력 한 후 리 팩터를 클릭하십시오.
  9. 그런 다음 하단에서 리팩터링을 클릭하십시오.
  10. 그런 다음 android studio는 모든 변경 사항을 업데이트합니다.
  11. 이제 build.gradle 파일을 열고 applicationId를 업데이트하고 동기화하십시오.
  12. 이제 매니페스트 파일로 이동하여 패키지 이름을 바꿉니다.
  13. 프로젝트를 다시 빌드하십시오.
  14. 당신은 끝났습니다 :)
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.