2013-03-23 26 views
45

上傳我的PhoneGap的應用程序時,我得到這個錯誤給谷歌Play開發者控制檯:如何解決「APK的版本代碼需要高於2」。在Google Play的開發者控制檯中?

您的APK版本代碼必須高於2

我該如何解決這個問題?

+0

我們有什麼懶開發商的日子。你正在發佈一個apk,甚至不知道基本?看在上帝的份上,閱讀Android文檔,它是免費的! https://developer.android.com/studio/publish/versioning.html – 2017-10-31 19:54:22

+0

上帝保持很長的時間,但最後敲擊 – 2017-10-31 19:58:30

回答

7

使用aapt驗證您的APK版本:

aapt dump badging myapp.apk 

它會告訴你增加versionCodeAndroidManifest.xml,例如

<manifest android:versionCode="3"> 
2

我想你已經有一個版本2上傳到你的開發控制檯。只需將版本代碼(注意:不是版本名稱!)增加到3,重新構建APK就可以了。

+5

我不知道如何增加Google控制檯詢問我的版本代碼。否則,我不會在這裏問這個問題... – guaka 2013-03-23 23:50:21

3

當您準備好您的應用程序部署到APK,在JDeveloper中去申請 - >部署 - >新建部署配置文件。將配置文件類型設置爲適用於Android的ADF Mobile,選擇一個名稱並單擊確定。在下一個窗口中選擇Android選項並更改版本代碼。這就是Google Play不喜歡的(因爲您已經擁有一個具有相同版本代碼的應用)。這就是我解決這個問題的方法。

1
appt dump badging myapp.apk 

該命令可用於檢查構建的apk版本。但是和老的技巧解決了這個問題,即使我增加了版本。嘗試清理工作區並重新構建。

15

在AndroidManifest.xml中改變的versionCode增加版本代碼,以3:

<android xmlns:android="http://schemas.android.com/apk/res/android"> 
     <tool-api-level>10</tool-api-level> 
     <manifest android:versionCode="3" android:versionName="0.1.1" android:installLocation="preferExternal"/> 
     <uses-sdk android:maxSdkVersion="10" android:minSdkVersion="7" android:targetSdkVersion="10"/> 
</android> 
+3

在** Android Studio ** .5+ ... **看下回答** – Fattie 2014-06-19 12:38:30

+0

當我改變它到這個它給我這個錯誤 上傳失敗 您需要爲您的APK使用不同的版本代碼,因爲您已經有一個版本代碼爲3. – 2014-07-16 04:37:22

3

我有這個問題了一會兒,它難倒我。我嘗試重新導入項目。從Eclipse將項目帶入Android Studio。一切。而我發現的工作是你必須增加1個版本的代碼。您不必更改版本名稱。在導出apk文件之前。確保你至少要建立一個項目。所以新版本的代碼被實現了。

70

如果你直接使用搖籃,或間接通過Android的工作室:

我固定它通過編輯build.gradle文件的內部版本號!在android.manifest文件的底部有一個小橫幅,標明「這些更改正被build.gradle文件覆蓋」。

+4

如果您使用的是Android Studio,請使用此答案。 – HighLife 2014-05-26 00:31:38

+3

你甚至可以從'build.gradle'中刪除'versionCode'和'versionName'。如果刪除,AndroidStudio將恢復到您的'AndroidManifest.xml' – 2015-03-29 12:35:31

+1

@IvoRenkema您的評論可能是一個實際的答案,爲什麼不把它做成一個?顯而易見的好處是,只需要記住在一個文件中更新版本號後... – Kev 2015-10-22 12:15:15

2

在Android Studio中,我只能通過更改應用程序文件中的versionCode來獲得此功能。

android { 
    compileSdkVersion 19 
    buildToolsVersion '19.1.0' 
    defaultConfig { 
     applicationId 'xxxxxxxxxxxxxxx' 
     minSdkVersion 14 
     targetSdkVersion 19 
     versionCode 3 
     versionName '1.1' 
    } 
    buildTypes { 
     release { 
      runProguard false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
    } 
    productFlavors { 
    } 
} 
1

我的解決方案是編輯config.xml並更改'版本'屬性。

我試着編輯我的AndroidManifest.xml(我能找到的每個版本)並更改了versionCode和versionName值。一些AndroidManifest.xml文件被原始值覆蓋,有些未被覆蓋。無論如何,apk版本仍然是'1'。

我在config.xml中查了幾次,但versionCode和versionName都不存在。我最終決定在config.xml中更改'版本'值,重建,我的apk現在有了新的正確的版本號。

在config.xml中:

老 '版本' 屬性:"version=0.0.1"

新 '版本' 屬性:"version=0.0.2"

應當指出的是,我沒有使用Eclipse或Android工作室.. 。只是一個文本編輯器並運行手動構建。現在,當我運行

AAPT轉儲徽章[APK名稱]

我看到一個更新的versionCode和...的versionName具體地說,我看到:

versionCode='2' versionName='0.0.2' 

...我現在可以再次將我的apk成功上傳到Play商店。

3

我發現如果您使用Android Studio,則需要更新build.gradle文件中的版本代碼。例如:

defaultConfig { 
    applicationId "app.myapp" 
    minSdkVersion 14 
    targetSdkVersion 20 
    versionCode 2 
    versionName "1.0.0" 
} 

...

+0

這是什麼爲我工作,沒有任何其他的建議。 Upvoted,並感謝您的回答! – Kreg 2016-08-23 00:19:55

24

enter image description here

請參閱Android Studio中的附着咬合,這應有助於。

+5

'versionCode'必須增加至少1,然而'versionName'可以增加.1(或其他),因爲這是最終用戶看到的。 – Micro 2015-09-22 17:41:22

+3

其實,如果你不想要,versionName甚至不必增加。 – Kev 2015-10-22 12:14:32

6

有同樣的問題,並通過在Module: app

defaultConfig { 
     applicationId //app package goes here 
     minSdkVersion 10 
     targetSdkVersion 21 
     **versionCode 2 
     versionName "1.1"** 
     signingConfig //name of keystore goes here 
    } 

這改變在build.gradle文件中的以下值是Android Studio中跟蹤的版本爲每個應用程序的方式解決它。

或者,對於noobs,您可以通過單擊應用程序的設置並導航到Flavors選項卡來訪問這些設置。在那裏你可以修改某些設置,例如versionCode和versionName。

希望這有助於:)

0

對於我科爾多瓦內置的應用程序,沒有必須的靜態代碼的搖籃文件。它採用了Android清單這樣採摘 -

defaultConfig { 
versionCode cdvVersionCode ?: Integer.parseInt("" + privateHelpers.extractIntFromManifest("versionCode") + "0") 
applicationId privateHelpers.extractStringFromManifest("package") 

if (cdvMinSdkVersion != null) { 
    minSdkVersion cdvMinSdkVersion 
} 

}

我試圖改變清單文件的版本代碼,但沒有運氣。

不是一件好事做,而是出於着急的我這樣做 -

defaultConfig { 
versionCode cdvVersionCode ?: (Integer.parseInt("" + privateHelpers.extractIntFromManifest("versionCode") + "0") + 2) 
applicationId privateHelpers.extractStringFromManifest("package") 

if (cdvMinSdkVersion != null) { 
    minSdkVersion cdvMinSdkVersion 
} 

}

注:科爾多瓦創建的應用程序,你需要在搖籃腳本>文件變化,這說 - 「的build.gradle(模塊:機器人)」

2

人機器人和您的用戶只是需要跟蹤的所有更新,所以它需要你通過更新的versionCode和

的versionName 提版本

下面是如何來解決這個問題:

在先

defaultConfig { 
    applicationId "com.example.random.projectname" 
    minSdkVersion 15 
    targetSdkVersion 24 
    versionCode 1 
    versionName "1.0" 
} 

NOW

defaultConfig { 
    applicationId "com.example.random.projectname" 
    minSdkVersion 15 
    targetSdkVersion 24 
    versionCode 2 
    versionName "1.0.1" 
} 

記住

  • 的versionName就是顯示在長描述的底部應用程序的用戶
  • 雖然的versionCode是開發商和谷歌的需要,必須由一個總是爲每一個新的versionName當您從V1.0.5更改的versionName遞增甚至到V1.0.6
+1

早先和現在之間有什麼變化?對我來說看起來是一樣的。 – 2016-08-29 13:55:12

+0

抱歉,我剛剛更新了它。謝謝。 – 2016-08-30 07:27:06

相關問題