Przesyłanie nie powiodło się. Musisz użyć innego kodu wersji dla swojego pliku APK, ponieważ masz już taki z kodem wersji 2


129

Zgodnie z tą odpowiedzią Jak rozwiązać problem „Kod wersji pliku APK musi być wyższy niż 2”. w Konsoli programisty Google Play? Właśnie zmieniłem kod wersji z 2 na 3 i nie udało mi się przesłać kompilacji.

To jest mój stary manifest przed przesłaniem apk

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="mypackage name"
    android:installLocation="auto"
    android:versionCode="28"
    android:versionName="1.0028" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="19" />
        .....

oto kod nowej wersji, który muszę przesłać na konsolę programisty Androida. Zobacz mój menifest

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="mypackage name"
    android:installLocation="auto"
    android:versionCode="2"
    android:versionName="2.0001" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="19" />
        ......

Nie wiem, w czym problem. Jakaś pomoc? wprowadź opis obrazu tutaj

Odpowiedzi:


125
android:versionCode="28"

Twój poprzedni versionCodemiał 28. Powinieneś zwiększyć go o 1 do 29.

android:versionCode="29"

Przypuszczalnie poprzednie wersje aplikacji to od 1 do 28. Wydanie z wersją versionCode 3 powoduje konflikt z poprzednią wersją aplikacji, która została już wydana z tym kodemwersji.


Ta liczba jest używana tylko do określenia, czy jedna wersja jest nowsza od innej, przy czym wyższe liczby oznaczają nowsze wersje. To nie jest numer wersji pokazywany użytkownikom
Mohamed AbdelraZek

Dla każdego, kto mógłby być zdezorientowany, pamiętaj, że to nie jest wersja
SDK,

Czy możesz mi powiedzieć dokładnie, jaka jest ścieżka do tego pliku?
João Pimentel Ferreira

214

Dla ludzi, którzy korzystają z systemu Android Studio problem może być rozwiązany poprzez edycję versionCodei versionNamew build.gradlezamiast AndroidManifest.xml.

na przykład

defaultConfig {
    applicationId "com.my.packageId"
    minSdkVersion 15
    targetSdkVersion 22
    versionCode 2      <-- change this
    versionName "2.0"  <-- change this
}

3
Czy potrafisz czytać AndroidManifest.xml z build.gradle? Nie ma sensu mieć wartości dwa razy.
MonoThreaded

To jest odpowiedź. To, co się tutaj stało, to fakt, że gradle jest tym, który ładuje projekt, więc nadpisuje wersje
jasmo2

1
upewnij się, że versionCode jest liczbą całkowitą i po zmianie dokonujesz synchronizacji.
sk md

29

W moim przypadku to prosta sprawa. Wcześniej przesłałem aplikację do konsoli, więc po rozwiązaniu niektórych problemów próbuję ją przesłać ponownie. Wszystko, co robię, to usunięcie poprzedniego pliku APK z Biblioteki artefaktów


11
Przesłałem wersję przez Konsolę Google Play, a następnie usunąłem ją przed opublikowaniem, przesłałem ponownie i otrzymałem błąd OP. Myślałem, że go usunąłem, ale nadal był obecny w Bibliotece Artefaktów. Usuń stamtąd, a potem mogę przesłać ...
Scuzzlebutt

22

jeśli używasz Ionic Framework , przejdź do pliku config.xml i zmień atrybut „version” w tagu „widget” . zwiększyć numer wersji. następnie odbuduj, podpisz i prześlij swój apk do sklepu Play. to rozwiązało mój problem.


7
Dzięki. Dodam tylko kilka szczegółów. Zmieniłem atrybut wersji w tagu widget z 0.0.1 do 0.0.2 . Po wykonaniu cordova build --release androidpolecenia ta zmiana zmodyfikowała AndroidManifest.xml w dwóch atrybutach, od android: versionCode = "1" do android: versionCode = "2" i od android: versionName = "0.0.1" ** do ** android: versionName = „0.0.2” w tagu manifestu.
remat_br

16

Ten błąd pojawia się, gdy próbujesz przesłać plik APK, który ma takie same wartości wersji, jak ta, która jest już w sklepie playstore.

Po prostu zmień następujące elementy w pliku build.gradle => versionCode i versionName

defaultConfig {
    applicationId "com.my.packageId"
    minSdkVersion 16
    targetSdkVersion 27
    versionCode 2      <-- increment this by 1
    versionName "2.0"  <-- this is the version that shows up in playstore, 
                           remember that the versioning scheme goes as follows.
                           first digit = major breaking changes version
                           second digit = minor changes version
                           third digit = minor patches and bug fixes.
                           e.g versionName "2.0.1"
}

11

Czasami PlayStore napotyka błąd, gdy przesyłasz plik APK podczas tworzenia wersji, i utkniesz, ponieważ nie możesz ponownie przesłać tego samego pliku APK dla bieżącej wersji roboczej. Pojawia się błąd „Przesyłanie nie powiodło się ...”

Rozwiązaniem jest przejście do menu biblioteki artefaktów w sekcji Zarządzanie wersjami i usunięcie projektu artefaktu. Gdy to zrobisz, będziesz mógł ponownie przesłać plik APK i dokończyć wydanie.

Mam nadzieję, że pomoże to innym ...

Ben


7

W Android Studio 1.1.0, zmiany versionCodew build.gradleza Module: appi nie koniecznie zmienić versionName:

android {
...
    defaultConfig {
...
        versionCode 3
        versionName "1.0"
    }
...
}

4

Tak jak powiedziała odpowiedź Martina Konecnego , musisz zmienić kod wersji na wyższy.

Twój kod poprzedniej wersji to 28. należy go zmienić na 29.

Zgodnie z dokumentem na stronie programisty Androida. kod wersji to

Wartość całkowita reprezentująca wersję kodu aplikacji względem innych wersji.

Powinien więc być powiązany (przez pokrewny, mam na myśli wyższy) z poprzednią wersjąKod, jak odnotowano w dokumencie:

powinieneś upewnić się, że każde kolejne wydanie aplikacji ma większą wartość.

Jak wspomniano ponownie w dokumencie

wartość android: versionCode niekoniecznie ma duże podobieństwo do wersji wydania aplikacji, która jest widoczna dla użytkownika (patrz android: versionName, poniżej)

Więc nawet jeśli jest to wydanie 2.0001Twojej aplikacji, nie musi to oznaczać, że kod_wersji to 2.

Mam nadzieję że to pomoże :)


4

Jeśli używasz Android Studio, możesz:

Buduj -> Edytuj smaki

I stamtąd zmień kod wersji i nazwę.

wprowadź opis obrazu tutaj


4

Jeśli używasz tworzenia samodzielnych aplikacji z Expo, błąd versionCode może się pojawić ze względu na fakt, że standardowa app.jsonkonfiguracja ma tylko odniesienie do versionwłaściwości.

Udało mi się dodać następującą versionCodewłaściwość android:

Przykładowy plik App.json

{
  "expo": {
    "sdkVersion": "29.0.0",
    "name": "App Name",
    "version": "1.1.0",
    "slug": "app-name",
    "icon": "src/images/app-icon.png",
    "privacy": "public",
    "android": {
      "package": "com.madhues.app",
      "permissions": [],
      "versionCode": 2 // Notice the versionCode added under android.
    }
  }
}

Szczegółowa dokumentacja: https://docs.expo.io/versions/v32.0.0/workflow/configuration/#versioncode


4

(Dla aplikacji Flutter) Musisz użyć innego kodu wersji dla swojego pliku APK lub pakietu aplikacji na Androida, ponieważ masz już taki z kodem wersji 1.

Nie panikuj ...

Musisz zmienić w Flutter Version z pliku pubspec.yaml i Version Cod e z pliku local.properties .

Najpierw przejdź do pliku pubspec.yaml . Pierwsze trzy linie powinny zawierać nazwę, opis i wersję aplikacji.

Przed wydaniem -

Dla Ciebie wersja może wyglądać mniej więcej tak:

wersja: 1.0.0 + 1

Dlatego przed utworzeniem apk do wydania (aby zaktualizować wychodzącą aplikację w Konsoli Google Play, tj. W celu nowej aktualizacji), upewnij się, że zwiększasz tę liczbę o 1. (Powinieneś ją zwiększyć, ponieważ nie ma wymagań co do kroku inkrementacji).

Rozwiązanie

Po prostu zmień tę wersję na (zgodnie z potrzebami)

wersja: 1.0.1 + 2

Po drugie, jeśli

flutter.versionCode w Project -> android -> local.properties to

flutter.versionCode = 1, a następnie zmień go lub zaktualizuj do flutter.versionCode = 2 lub dowolnej innej większej liczby niż poprzedni kod.

I wreszcie wypuść aplikację zgodnie z dokumentacją.


Tak więc w przypadku kodu wersji po wersjonowaniu semantycznym , gdzie to jest major.minor.patch+build, Play patrzy tylko na ostatni buildskładnik? (To nie jest błąd?)
AWhitford

3

jeśli używasz aplikacji phonegap / cordova, po prostu wyedytuj plik config.xml i dodaj kod android-versionCode i wersję w widżecie.

<widget id = "com.xxx.yyy" version = "1.0.1" xmlns = "http://www.w3.org/ns/widgets" xmlns: cdv = "http://cordova.apache.org/ ns / 1.0 "android-versionCode =" 100001 "version =" 1.0.1 ">


1

Jeśli pojawi się ten błąd dla pliku APK aplikacji Flutter na Androida, w pliku app / build.gradle w defaultConfig {}

skomentować

versionCode flutterVersionCode.toInteger()
versionName flutterVersionName

i dodaj

versionCode 2
versionName "2"

lub „kod poprzedniej wersji” + 1.


1

Otrzymałem ten sam błąd podczas przesyłania aplikacji flutter do playstore, po prostu zmień kod wersji w pubspec.yaml działał dla mnie. można spróbować zmienić kod wersji, np. z +1 na +2, a następnie przebudować apk za pomocą

flutter build apk --split-per-abi 

i prześlij wszystkie aplikacje do sklepu playstore dla swoich użytkowników. Następnym razem, gdy będziesz chciał wypchnąć aktualizację, zaktualizuj kod wersji do +3 i tak dalej.

Uwaga: że kod wersji i nazwa wersji są różne, widać to w pliku android / local.properties . np. wersja: 1.0.0 + 2

wersja to 1.0.0, a kod wersji to +2


0

Wygląda na to, że przesłałeś już plik APK wersji 3 do sklepu Google Play. I znowu przesyłasz apk z tą samą wersją. Więc ten problem wystąpił.

Aby rozwiązać problem, musisz zmienić nazwę wersji i kod wersji (zwiększ o 1) i raz uruchomić aplikację, a po wyeksportowaniu przesłać ją do Google Play.


0

Ciągle otrzymywałem ten sam błąd, w

końcu załadowałem plik apk ręcznie za pomocą Konsoli Google Play, jak pokazano na zrzucie ekranu.

W wersji aplikacji wybierasz przycisk „UTWÓRZ WYDANIE” pokazany na zrzucie ekranu i przesyłasz plik apk z/android/app/bin/build/outputs/apk/release/app-release.apk

wprowadź opis obrazu tutaj


0

W moim przypadku miałem coś takiego w moim AndroidManifest,

      javaCompileOptions {
        annotationProcessorOptions {
            arguments = [
                    'androidManifestFile': 'app\\build\\intermediates\\merged_manifests\\debug\\processDebugManifest\\merged\\AndroidManifest.xml'
            ]
        }
   }

tutaj lokalizacja „androidManifestFile” jest nieprawidłowa, zmieniono ją na

"androidManifestFile": "$projectDir/src/main/AndroidManifest.xml".toString()

wszystko działało

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.