2013-03-27 72 views
0

我使用此代碼來獲取應用程序的「版本名稱」,然後將其發送到我的服務器: String appversion = mContext.getPackageManager().getPackageInfo(act.getPackageName(), 0).versionName;升級Android應用程序沒有獲取新的versionName

當我已經安裝在手機上的應用程序的V1.0並通過Google Play將應用升級到v1.0.1,該應用仍會發送「1.0」作爲versionName

如果我「強行關閉」應用程序,然後打開它,它仍然會報告「1.0」。

如果我「強制關閉」和「清除數據」,它仍然報告「1.0」。

如果我從手機上卸載應用程序,然後下載v1.0.1,,那麼版本名稱會被報告爲「1.0.1」

任何想法爲什麼會發生這種情況,或者我能做些什麼來解決問題?

編輯: 這個應用程序是連接到Android庫的幾個目標/ apks之一。 Android庫中有一個Manifest,每個目標apk都有一個Manifest。我的理解是,每個apk都會使用它自己的Manifest(並且不正確的版本號與圖書館的Manifest中的數字不匹配),但我想我應該提到這一點。

+0

對於調試,添加一個Toast,在您的應用程序中顯示版本名稱。如果它在那裏是錯誤的,你可以排除這是你的報告系統的錯誤。 – Kopfgeldjaeger 2013-03-27 18:31:41

+0

這似乎是升級系統的錯誤。如果我全新安裝了應用程序,它會報告正確的版本。只是當我從以前的版本升級。 – Chris 2013-03-27 18:55:35

+0

由於Google Play需要一段時間才能跨所有服務器同步更新,因此您可能無法第一次獲得更新後的apk。然後,當你卸載並重新安裝應用程序,你有新的。 – 2013-03-27 19:20:35

回答

0

首先檢查this官方幫助!

您提到versionName,但幫助區分應用版本的東西是versionCode在清單文件中定義。

因此,如果這是舊版本的清單:

//...  
package="com.your.app" 
android:versionCode="1" 
android:versionName="MyApp V1.0" 
//... 

...新的應該是這樣的:

//...  
package="com.your.app" 
android:versionCode="2" 
android:versionName="MyApp V1.1" 
//... 

另請注意,谷歌需要12-48個小時在網上發佈新版本。

+0

謝謝,但我的Manifest已更新爲每個版本。我甚至不認爲Google Play會接受沒有更高版本代碼和版本名稱的Manifest – Chris 2013-03-27 21:48:20

相關問題