0

このコードを使用してアプリの「バージョン名」を取得し、サーバーに送信しています。 String appversion = mContext.getPackageManager().getPackageInfo(act.getPackageName(), 0).versionName;

アプリの v1.0 を電話にインストールし、Google Play 経由でアプリを v1.0.1 にアップグレードすると、アプリは「1.0」をversionName.

アプリを「強制終了」してから開くと、「1.0」と報告されます。

「強制終了」して「データを消去」しても、「1.0」と報告されます。

携帯電話からアプリをアンインストールしてから v1.0.1 をダウンロードすると、バージョン名が "1.0.1" として報告されます。

なぜこれが起こるのか、または問題を解決するために私にできることはありますか?

編集: このアプリは、Android ライブラリに接続されているいくつかのターゲット/apk の 1 つです。Android ライブラリにマニフェストがあり、各ターゲット apk にマニフェストがあります。私の理解では、各 apk は独自のマニフェストを使用します (また、誤ったバージョン番号はライブラリのマニフェストの番号とも一致しません) が、これについて言及する必要があると思いました。

4

1 に答える 1

0

まずはこちらの公式ヘルプをチェック!

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"
//...

また、Google が新しいバージョンをオンラインで公開するには 12 ~ 48 時間かかることにも注意してください。

于 2013-03-27T20:55:51.667 に答える