我的密鑰庫已損壞,因此Android電子市場要求我重命名應用程序並重新提交。但是,無論何時我在Manifest和整個文件中編輯包名時,都會給我帶來很多錯誤。如何更改Android應用程序的包名
什麼改變應用程序名稱的正確方法?
我的密鑰庫已損壞,因此Android電子市場要求我重命名應用程序並重新提交。但是,無論何時我在Manifest和整個文件中編輯包名時,都會給我帶來很多錯誤。如何更改Android應用程序的包名
什麼改變應用程序名稱的正確方法?
如果你使用Eclipse,你可以從Android的開發者網站嘗試these instructions。他們是專門爲GestureBuilder樣品,但應適用於任何應用程序,只要我可以告訴:
[H] ERE是你如何可以在Eclipse中做到這一點:
- 上單擊鼠標右鍵包名稱(
src/com.android.gesture.builder
)。- 選擇重構>重新命名,並更改名稱,例如
com.android.gestureNEW.builder
。- 打開清單文件。在
<manifest>
標籤內,將包名稱更改爲com.android.gestureNEW.builder
。每兩個活動文件 和- 開放辦按Ctrl-Shift-O組合添加缺失的導入包,然後保存每個 文件。在模擬器上運行GestureBuilder應用程序。
另外,一定記得你的包本身在文件中對它的引用一起重新命名。在Eclipse中,您可以在左側的文件資源管理器窗口/樹視圖中看到程序包的名稱。根據我的經驗,Eclipse有時可能會有一點小巧和不可靠(例如,留下舊包名稱的散佈引用)。
這可能是最好的方法,沒有不可思議的變化包名稱按鈕。 – blindstuff 2010-10-26 16:06:51
是的。請參閱@Marc Bernstein的答案。 – 2011-10-28 21:20:36
我不認爲原始提問者也需要更改Java包名稱。馬克的應該是被接受的答案。 – mpellegr 2013-08-14 21:48:49
有一種方法可以在Eclipse中輕鬆更改軟件包名稱。右鍵單擊您的項目,向下滾動到Android工具,然後單擊重命名應用程序包。
剛剛嘗試Eldar的,它的工作 - 但我相信這也會工作。 – 2010-10-26 16:35:40
這個答案要容易得多。這應該被接受。 – Ashwin 2012-11-07 09:14:46
非常簡單的方法!優秀。 – MastAvalons 2012-11-25 15:48:34
伯恩斯坦有方法,使用Eclipse工具,「重命名應用程序包」,你可能有一些清理,即使在事後做。 另外,當您對項目進行更改時,Eclipse有時會丟失事物的蹤跡。您可能需要使用「Clean Project」工具(位於「Project」菜單下)。如果這不起作用,您可能必須關閉並重新啓動Eclipse。 Voo-doo解決方案,但Eclipse可以這樣。
我發現最簡單的解決方案是使用Regexxer將「com.package.name」替換爲「com.newpackage.name」,然後正確地重命名目錄。超級簡單,超級快。
這裏是你如何在Eclipse中做到這一點:
src/com.android.gesture.builder
),單擊鼠標右鍵。Refactor > Rename
並更改名稱,例如 com.android.gestureNEW.builder
。<manifest>
標籤內,將包名稱更改爲com.android.gestureNEW.builder
。每兩個Activity
文件GestureBuilder
應用程序。更新 超級簡單的方法 右鍵點擊你的項目...
更改包的名稱是一個痛苦的屁股。看起來不同的方法適用於不同的人。我的解決方案快速無誤。看起來沒有清潔或重置日食是必要的。
還有沒有Eclipse的用戶另一種解決方案,只需更改包屬性中<清單>標籤在AndroidManifest.xml中,通過更換一個新使用的舊包名稱。 注意:您必須在項目中手動調整所有相關的導入語句和相關文件夾。
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="new.package.name"
.....
</manifest>
src
文件夾重命名包的名稱,並把蜱爲rename subpackages
我嘗試使用馬克伯恩斯坦的Android工具 - >重命名應用程序包,但它給了我錯誤。這很簡單,雖然我不得不在修改之後修復一些東西 – 2013-08-22 12:34:49
不使用Eclipse:在AndroidManifext.xml
更改包名稱和活動名稱和其他地方它.xml文件顯示出來(自定義視圖名稱等)
更新包跨所有源文件導入聲明
重命名所有文件夾以匹配軟件包名稱。文件夾位置:
a。 bin/classes
b。 c。編號
c。 SRC
更新項目名稱build.xml文件(或您的APK的名稱不會改變)
刪除所有。在bin/classes/com/example/myapp /中創建類文件(如果跳過這一步,則在構建過程中文件不會被重寫,dex會給出一堆麻煩處理「類名稱不匹配路徑」錯誤
刪除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都聲明「找到已刪除的目標文件」,沒有關於該文件的詳細信息。不知道這是否顯示在每一個版本,如果它之前,我與我的包名稱搞砸了,或者如果這是我刪除的結果,我錯過了一個步驟。
我像你一樣解決了重命名問題,但是簡化了:刪除bin和gen文件夾。此外,我無法在Eclipse中導入重命名的項目,直到我修改了隱藏文件.project,它的舊項目名稱在
備選:
遵循以下步驟: -
DONE
這可以工作,但是您還應該重構基本src文件夾包名稱。 – ashishduh 2013-09-25 21:59:42
在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
奇怪的是,當我這樣做時,它不會給出選擇目錄/包...只有「模塊名稱」... – Fattie 2014-05-21 13:56:02
現在,如果我右鍵單擊根目錄,它對我也是如此。至少對我來說,那不是我的實際包名。如果你的軟件包名稱是com.a.bc,那麼在根目錄下應該有一個名爲bc的目錄。這就是你會得到不同選擇的地方。現在,我正在獲取目錄或模塊。嘗試模塊。如果它破壞任何東西,你可以隨時撤消它(Ctrl + z應該這樣做)。 – craned 2014-05-21 14:31:25
謝謝..狗屎,你的意思是「.idea」目錄或「應用程序」目錄?我剛剛發佈了一個解釋性Q .. http://stackoverflow.com/questions/23786361/android-studio-mac-fully-change-project-name Ahh ..我現在看到「選擇重構目錄/模塊」,當我點擊我的「應用程序」文件夾.... hoy caramba! – Fattie 2014-05-21 14:38:00
右鍵單擊項目> Android的工具>重命名應用程序包
轉到src和右鍵在您的主包>重構>重命名
轉到清單文件並更改您的軟件包名稱。
我剛剛嘗試所有解決方案失去了幾個小時。我確定,問題出現在我的代碼中 - apk開始,但在使用不同的類和活動時出現一些錯誤。
只有這樣,我的項目的工作:
對於我來說它的工作原理,唯一的解決辦法。
最快的方式做到這一點Android Studio中1.3:
manifest
Module Settings[F4]-> Flavors
,到Application Id
寫相同的名稱。[right-click-> new-> package]
[Right-click-> Refactor-> Move-> {Select package}-> Refactor]
附:如果你不遵循這個順序,你最終可能會用新的導入和一堆編譯時錯誤逐個更改所有的java文件,所以順序非常重要。
用這種方法,R在重構時保持不變。所以導入com.app.myapp.R不會更改爲新的軟件包名稱,並且您必須逐個更新... – OWADVL 2015-10-07 10:12:28
當您將文件移動到新軟件包時,@OWADVL,R會自動更改,Android Studio會自動執行重建當你移動.java文件時,我每天都會做這件事,只要我保持這個順序,我就不會在.java文件中手動更改任何內容。 – 2015-10-08 07:35:58
但是在Eclipse中,我們可以更改應用程序包ID,而不更改所有包代碼。該向導將爲您重命名BuildConfig&R引用。我感到困惑的是,同樣的事情在AS中不存在。 – Tom 2016-02-09 03:47:02
在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上傳到谷歌商店。確保你已經簽名你的應用程序上傳到商店。
因此,使用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更新對BuildConfig
和R
的所有引用。
最後我更新了我在gradle.build中找到的所有applicationId [s]。我打了清潔項目,製作和重建項目。從我的手機中刪除應用程序,然後點擊「播放」。這一切都解決了,因此重構非常簡單而且速度非常快。
這裏是通過分步處理簡短步驟Android Studio中更改Android應用程序軟件包名稱... https://stackoverflow.com/a/46945668/6915572
值得慶幸的是,他們增加了一個「神奇,變化包名稱按鈕」自2010年 - 看到@Marc伯恩斯坦的答案 - HTTP ://stackoverflow.com/a/4025633/383414 – 2013-02-08 07:46:33
感謝理查德勒... – DoruChidean 2015-09-07 08:02:18
[Android Studio重命名包]可能的重複(http://stackoverflow.com/questions/16804093/android-studio-rename-package) – 2017-03-20 20:35:17