2011-04-26 96 views
0

我需要在android市場發佈兩款功能類似且使用類似代碼庫的應用。這些應用程序所不同的唯一地方是客戶端特定的圖標和一些字符串。發佈類似應用時發生套餐衝突

當試圖發佈時,它看起來像我的應用程序正在發生軟件包衝突。我應該怎麼做才能避免套餐衝突。我在網上做了一些搜索,它看起來像我不得不改變我的類的基礎包,這聽起來很奇怪。有沒有其他的選擇,我錯過了。

+1

嗨ankit我沒有看到任何其他方式,除了更改包名 – Dinash 2011-04-26 09:56:13

+0

謝謝Dinash ...但這很奇怪。維護代碼庫將會非常糟糕。我甚至不明白這樣做的理由。 – 2011-04-26 10:03:44

回答

2

該應用程序由包名稱標識。因此包名稱需要是唯一的。這就是爲什麼每個人都使用一些域名來創建一個獨特的包(域也是唯一的)。

我的包看起來像:

org.shufflecity.android; 
org.shufflecity.server; 

您還可以添加一個子包爲每個客戶端必須:

org.shufflecity.clientname.android 

這應該做的伎倆......

+0

嗨沃倫......我試圖避免的是很多代碼更改。所以維護代碼對於不同的客戶來說變得更容易否則保持不同的分支可能是一個真正的痛苦 – 2011-04-26 10:14:47

+0

沒有其他選擇。更改軟件包名稱不是一個大問題。我會推薦一個穩定的非客戶端版本,併發布您只需導出它,更改包名稱併發布它。 – WarrenFaith 2011-04-26 10:41:30

+0

看起來這個問題沒有其他選擇。我會繼續並接受你的回答。 – 2011-04-27 03:27:45

1

只有你的事需要在清單中更改爲包屬性:

<manifest package="com.example.project" . . . > 

不要忘記根據新的軟件包名稱修復清單文件中的所有員工。

+0

如果我遵循這種方法,是否需要更改所有類的包名? – 2011-04-26 10:06:59

+0

您可以從com.example.project遷移到com.example,那麼您將不需要更改nay包名稱。 – 2011-04-26 10:08:02

+0

我沒有明白你的觀點。你的意思是改變類包名稱以com.example開頭,包名稱爲com.example.project。我試過這種方法,但R文件只是在com.example.project包中生成的。 – 2011-04-26 10:13:00

0

包名稱在市場上是獨一無二的。也就是說,只需將公共代碼設置爲Android庫,仍然可以重用您生成的代碼。然後每個客戶端子項目都會有不同的清單,指定不同的包名稱。

不要忘記創建該軟件包併爲清單中的活動指定絕對軟件包名稱。

相關問題