2017-04-17 8 views
0

0.1.#のようなAndroidアプリのバージョンを作成しました。さて、それは1/2日後にいくつかのデバイス(Huawei社Y6 II)0.1.6への自動ダウングレードバージョンにインストールされていますときに問題があるバージョンは0.1.9までで、コードはこのアンドロイドアプリは自動的にバージョンをダウングレードします

defaultConfig { 
     applicationId "myapp.app" 
     minSdkVersion 21 
     targetSdkVersion 23 
     versionCode 1 
     versionName "0.1.9" 
     multiDexEnabled = true 
    } 
    productFlavors { 
     demo { 
      versionName "0.1.9-demo" 
     } 
     full { 
      versionName "0.1.9-full" 
     } 
    } 

のように行きます。たぶんこれはまれな状態ですが、私はすでにGoogleで検索していますが、回答は得られませんでした。誰かが私に説明するpls、本当にあなたの助けに感謝します。おかげ

+3

なぜversionCodeはまだ1に設定されていますか?更新ごとにこれを増やす必要があります。 Google Playにこれを何の誤りもなくアップロードできることにも驚いています。 –

+0

@ Code-Apprentice正直言って私のアプリは内部目的のためだけだから、私は大事にしてapkを電子メールで送る。しかし、それが0.1.9未満のバージョンであったとき、自動的にダウングレードしませんか?私はplsを説明することができます –

+0

私はそれがダウングレードする理由を理解していません。 versionCodeを変更して問題が解決されたかどうかを確認することをお勧めします。また、今後バージョンごとにversionCodeを増やす必要があります。 –

答えて

0

アンドロイド:versionCode

内部バージョン番号。この番号は、 のいずれかのバージョンが別のバージョンより新しいかどうかを判断するためにのみ使用され、より新しいバージョンを示す高い数字の が使用されます。これはユーザーに表示されるバージョン番号ではありません。 その番号はversionName属性によって設定されます。値 は、「100」などの整数として設定する必要があります。連続するバージョンの番号が大きい場合は、 を定義できます。 の例では、ビルド番号とすることができます。または、 "x"と "y"を下位16ビットと上位16ビットで別々に符号化して、 "x.y"形式のバージョン を整数に変換することもできます。あるいは単に新しいバージョンがリリースされるたびに を1ずつ増やすことができます。

アンドロイド:versionName

ユーザに示すバージョン番号。この属性は、生の 文字列または文字列リソースへの参照として設定できます。 文字列には、ユーザーに表示される以外の目的がありません。 versionCode属性は、内部で使用されている重要なバージョン番号 を保持します。

これに基づいてバージョンコードを増やす必要があります。

出典:developer.android.com

0

アプリケーションが中/システム/アプリ(またはいくつかの他のシステム・パス)を見つけ、システムアプリケーションである場合 、その後、あなたはバージョン名(多分0.1.9)との新しいバージョンをインストールし、バージョンコードは0.1.6と同じですが、電話機が再起動している間、システムはバージョンを0.1.6にリセットします。システムは0.1.9と0.1.6が同じバージョンだと思うからです。

だから、この問題を回避するには、新しいバージョンをリリースするたびにVersionCodeを増やす必要があります。

関連する問題