web-dev-qa-db-fra.com

Existe-t-il une valeur maximale pour versioncode?

Nous devons toujours incrémenter versionCode d'un certain nombre arbitraire pour le publier sur Google Play.
Y a-t-il une limite à cette valeur et que se passera-t-il si elle est atteinte?

defaultConfig {
        applicationId "my.app"
        minSdkVersion 15
        targetSdkVersion 22
        versionCode 65
        versionName "1.05"
        setProperty("archivesBaseName", "myapp-$versionCode")

    }
26
Yarh

Mise à jour 08/11/2016 (UTC):

docs a été mis à jour. Pas l'ancien MAX_INT valeur ni le 2000000000.

Avertissement: La valeur maximale autorisée par Google Play pour versionCode est 2100000000 .


Cross-post pour la visibilité ici.

Il semble qu'il y ait eu un changement récent dans Google, faisant le maximum de versionCode jusqu'à 2000000000 seulement.

Article de référence: erreur Google Play Developer Console: le code de version de votre fichier APK est élevé et vous risquez de ne pas pouvoir mettre à jour votre fichier APK


PS: Pour ceux qui envisagent de faire référence à la documentation officielle où la valeur maximale mentionnée est 2147483647, veuillez d'abord lire la réponse dans le post auquel j'ai fait référence. Il mentionne qu'à la date actuelle (08/10/2016), il n'est toujours pas mis à jour.

36
AL.

Selon documentation Android et le gradle documentation DSL :

Android:versionCode - Une valeur integer qui représente la version du code d'application, par rapport aux autres versions.

Vérification du document Java doc, par défaut, le type de données int est un entier complément à deux signé 32 bits, qui a une valeur minimale de -2 ^ 31 et une valeur maximale de (2 ^ 31) -1.

La valeur maximale est alors 2 ^ 31-1.

14
Gabriele Mariotti

À partir de Android Pie (9), le code de version sera un long ( source ). La valeur maximale d'un long est 9,223,372,036,854,775,807 vous ne devriez donc pas rencontrer de problème de longueur ici.

Notez que c'est toujours un int dans les anciennes versions Android, donc cela ne vous concerne que lorsque votre minSdkVersion est 28 ou plus.

5
Cristan