2010-10-26 35 views
131

我的密鑰庫已損壞,因此Android電子市場要求我重命名應用程序並重新提交。但是,無論何時我在Manifest和整個文件中編輯包名時,都會給我帶來很多錯誤。如何更改Android應用程序的包名

什麼改變應用程序名稱的正確方法?

+3

值得慶幸的是,他們增加了一個「神奇,變化包名稱按鈕」自2010年 - 看到@Marc伯恩斯坦的答案 - HTTP ://stackoverflow.com/a/4025633/383414 – 2013-02-08 07:46:33

+0

感謝理查德勒... – DoruChidean 2015-09-07 08:02:18

+3

[Android Studio重命名包]可能的重複(http://stackoverflow.com/questions/16804093/android-studio-rename-package) – 2017-03-20 20:35:17

回答

101

如果你使用Eclipse,你可以從Android的開發者網站嘗試these instructions。他們是專門爲GestureBuilder樣品,但應適用於任何應用程序,只要我可以告訴:

[H] ERE是你如何可以在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有時可能會有一點小巧和不可靠(例如,留下舊包名稱的散佈引用)。

+0

這可能是最好的方法,沒有不可思議的變化包名稱按鈕。 – blindstuff 2010-10-26 16:06:51

+13

是的。請參閱@Marc Bernstein的答案。 – 2011-10-28 21:20:36

+0

我不認爲原始提問者也需要更改Java包名稱。馬克的應該是被接受的答案。 – mpellegr 2013-08-14 21:48:49

299

有一種方法可以在Eclipse中輕鬆更改軟件包名稱。右鍵單擊您的項目,向下滾動到Android工具,然後單擊重命名應用程序包。

+2

剛剛嘗試Eldar的,它的工作 - 但我相信這也會工作。 – 2010-10-26 16:35:40

+26

這個答案要容易得多。這應該被接受。 – Ashwin 2012-11-07 09:14:46

+2

非常簡單的方法!優秀。 – MastAvalons 2012-11-25 15:48:34

3

伯恩斯坦有方法,使用Eclipse工具,「重命名應用程序包」,你可能有一些清理,即使在事後做。 另外,當您對項目進行更改時,Eclipse有時會丟失事物的蹤跡。您可能需要使用「Clean Project」工具(位於「Project」菜單下)。如果這不起作用,您可能必須關閉並重新啓動Eclipse。 Voo-doo解決方案,但Eclipse可以這樣。

3

我發現最簡單的解決方案是使用Regexxer將「com.package.name」替換爲「com.newpackage.name」,然後正確地重命名目錄。超級簡單,超級快。

52

這裏是你如何在Eclipse中做到這一點:

  1. 包的名稱(src/com.android.gesture.builder),單擊鼠標右鍵。
  2. 選擇Refactor > Rename並更改名稱,例如 com.android.gestureNEW.builder
  3. 打開清單文件。在<manifest>標籤內,將包名稱更改爲com.android.gestureNEW.builder。每兩個Activity文件
  4. 打開並做按Ctrl ++Ø缺少添加導入包,然後保存每個文件。
  5. 在仿真器上運行GestureBuilder應用程序。

Link to post

更新 超級簡單的方法 右鍵點擊你的項目... enter image description here

+2

非常棒的方式來做到這一點! – Dude 2012-09-25 09:19:29

+0

如果你喜歡,請投票給我:) – 2012-09-25 11:02:37

+2

已經完成,肯定。;-) – Dude 2012-09-26 12:58:29

5

更改包的名稱是一個痛苦的屁股。看起來不同的方法適用於不同的人。我的解決方案快速無誤。看起來沒有清潔或重置日食是必要的。

  1. 右鍵單擊軟件包名稱,然後選擇「折射」>「重命名」。
  2. 右鍵單擊項目名稱Android工具>重命名應用程序包。
  3. 手動設置Manifest中尚未被上述步驟更改的軟件包名稱。
2

還有沒有Eclipse的用戶另一種解決方案,只需更改包屬性中<清單>標籤在AndroidManifest.xml中,通過更換一個新使用的舊包名稱。 注意:您必須在項目中手動調整所有相關的導入語句和相關文件夾。

<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="new.package.name" 
    ..... 
</manifest> 
4
  1. 拳清單文件
  2. 重因子更改包名稱>src文件夾重命名包的名稱,並把蜱爲rename subpackages
  3. 這是所有你做。
+0

我嘗試使用馬克伯恩斯坦的Android工具 - >重命名應用程序包,但它給了我錯誤。這很簡單,雖然我不得不在修改之後修復一些東西 – 2013-08-22 12:34:49

7

不使用Eclipse:在AndroidManifext.xml

  1. 更改包名稱和活動名稱和其他地方它.xml文件顯示出來(自定義視圖名稱等)

  2. 更新包跨所有源文件導入聲明

  3. 重命名所有文件夾以匹配軟件包名稱。文件夾位置:
    a。 bin/classes
    b。 c。編號
    c。 SRC

  4. 更新項目名稱build.xml文件(或您的APK的名稱不會改變)

  5. 刪除所有。在bin/classes/com/example/myapp /中創建類文件(如果跳過這一步,則在構建過程中文件不會被重寫,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,看看還有什麼需要更新。

*我的內部沒有任何錯誤或警告,除非dex和apkbuilder都聲明「找到已刪除的目標文件」,沒有關於該文件的詳細信息。不知道這是否顯示在每一個版本,如果它之前,我與我的包名稱搞砸了,或者如果這是我刪除的結果,我錯過了一個步驟。

+0

我像你一樣解決了重命名問題,但是簡化了:刪除bin和gen文件夾。此外,我無法在Eclipse中導入重命名的項目,直到我修改了隱藏文件.project,它的舊項目名稱在 2013-11-20 22:39:29

1

備選:

  1. 打開的AndroidManifest.xml
  2. 更改包= 「NEW NAME」 清單標籤內。
6

遵循以下步驟: -

  • 右鍵單擊該項目。
  • 轉到Android工具。
  • 點擊重命名應用程序包。
  • 更改應用程序包名稱。

DONE

+1

這可以工作,但是您還應該重構基本src文件夾包名稱。 – ashishduh 2013-09-25 21:59:42

10

Android Studio中,其中,坦白地說,你應該使用,在project structure -> Refactor -> Rename...

包的名稱由right-clicking更改包名稱然後,它給出了重命名目錄或包的選項。選擇包裹。目錄應該跟隨。輸入新的軟件包名稱,然後單擊重構。它會更改所有導入併爲您刪除多餘的導入。你甚至可以讓它在評論和字符串等方面修復它。

最後,相應地在您的AndroidManifest.xml中將包名改爲頂部。否則,你會得到無處不在的錯誤,抱怨R.

另一個非常有用的解決方案

首先創建一個新的包與期望的名稱by right clicking on the java文件夾 - >新 - >包。`

然後,選擇並拖動所有類到新包。 AndroidStudio將在任何地方重新包裝軟件包名稱。

之後:在您的應用程序的build.gradle添加/編輯applicationId與新的。即(com.a.bc在我的情況):

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

原帖更評論here

+0

奇怪的是,當我這樣做時,它不會給出選擇目錄/包...只有「模塊名稱」... – Fattie 2014-05-21 13:56:02

+1

現在,如果我右鍵單擊根目錄,它對我也是如此。至少對我來說,那不是我的實際包名。如果你的軟件包名稱是com.a.bc,那麼在根目錄下應該有一個名爲bc的目錄。這就是你會得到不同選擇的地方。現在,我正在獲取目錄或模塊。嘗試模塊。如果它破壞任何東西,你可以隨時撤消它(Ctrl + z應該這樣做)。 – craned 2014-05-21 14:31:25

+0

謝謝..狗屎,你的意思是「.idea」目錄或「應用程序」目錄?我剛剛發佈了一個解釋性Q .. http://stackoverflow.com/questions/23786361/android-studio-mac-fully-change-project-name Ahh ..我現在看到「選擇重構目錄/模塊」,當我點擊我的「應用程序」文件夾.... hoy caramba! – Fattie 2014-05-21 14:38:00

1
  1. 右鍵單擊項目> Android的工具>重命名應用程序包

  2. 轉到src和右鍵在您的主包>重構>重命名

  3. 轉到清單文件並更改您的軟件包名稱。

1

我剛剛嘗試所有解決方案失去了幾個小時。我確定,問題出現在我的代碼中 - apk開始,但在使用不同的類和活動時出現一些錯誤。

只有這樣,我的項目的工作:

  1. 將其重命名 - 文件/重命名,並檢查所有的複選框
  2. 檢查非改名的地方,我在佈局的老名字仍然在工具之一:上下文= 」 ..
  3. 創建新的工作空間
  4. 引進項目到新的工作區

對於我來說它的工作原理,唯一的解決辦法。

6

最快的方式做到這一點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]

附:如果你不遵循這個順序,你最終可能會用新的導入和一堆編譯時錯誤逐個更改所有的java文件,所以順序非常重要。

+1

用這種方法,R在重構時保持不變。所以導入com.app.myapp.R不會更改爲新的軟件包名稱,並且您必須逐個更新... – OWADVL 2015-10-07 10:12:28

+0

當您將文件移動到新軟件包時,@OWADVL,R會自動更改,Android Studio會自動執行重建當你移動.java文件時,我每天都會做這件事,只要我保持這個順序,我就不會在.java文件中手動更改任何內容。 – 2015-10-08 07:35:58

+0

但是在Eclipse中,我們可以更改應用程序包ID,而不更改所有包代碼。該向導將爲您重命名BuildConfig&R引用。我感到困惑的是,同樣的事情在AS中不存在。 – Tom 2016-02-09 03:47:02

1

在Android Studio中1.2.2 說,如果你想改變com.example.myapporg.mydomain.mynewapp 您可以按照每個目錄的步驟顯示在下面的屏幕截圖。它會給你預覽選項,以便你可以在做任何改變之前進行預覽。

轉到Refactor -> Rename並給出您的新名稱。您必須爲每個文件夾執行此操作,例如com,example和myapp。它會自動更新導入,以便您不必擔心。 enter image description here

還更新未自動更新的文件build.gradle

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

之後,它會要求sync做到這一點。那麼一切都會好的。在此之後,我可以將我的APK上傳到谷歌商店。確保你已經簽名你的應用程序上傳到商店。

0

因此,使用IntelliJ與Android(Studio)插件是:我去頂部AndroidManifest.xml並通過右鍵單擊 - >重構 - >重命名更改包名稱。 我們的包名有四個部分a.b.c.d,新的只有a.b.c。 所以我改名爲前三名。然後我去了生成的源代碼目錄(app\build\generated\source\r\development\debug\a\b\c\d),右鍵單擊了R類,並重構 - >將其移到一個更高的包。與BuildConfig相同app\build\generated\source\buildConfig\development\debug\a\b\c\d

通過使用Refactor-> Move,IntelliJ更新對BuildConfigR的所有引用。

最後我更新了我在gradle.build中找到的所有applicationId [s]。我打了清潔項目,製作和重建項目。從我的手機中刪除應用程序,然後點擊「播放」。這一切都解決了,因此重構非常簡單而且速度非常快。