0

を 2 に設定しversionCodeても、アプリはそれを 1 と報告します。versionCodeを 3 に設定すると、アプリはそれを検出します。alo 5、6 が設定されていない:

defaultConfig {
    versionCode 2

番号2で動作していません。プロジェクトをクリーンアップして再構築しましたが、結果は同じです。

私は何が欠けていますか?

この Firebase コードを使用して新しいアプリ バージョンがリリースされたことを検出したい: Android Studio のデバッグでこれを実行することに注意してください。

ValueEventListener systemListener = new ValueEventListener() {
            @Override
            public void onDataChange(DataSnapshot dataSnapshot) {
                App app = dataSnapshot.getValue(App.class);
                if (app.getVersionCode() > BuildConfig.VERSION_CODE) {
                    SettingsManager.setForceAppUpdate(true);
                    for (OnForceAppUpdateListener l : Application.getInstance()
                            .getUIListeners(OnForceAppUpdateListener.class))
                        l.onForceAppUpdate();
                } else { // TODO for testing
                    SettingsManager.setForceAppUpdate(false);
                    for (OnForceAppUpdateListener l : Application.getInstance()
                            .getUIListeners(OnForceAppUpdateListener.class))
                        l.onForceAppUpdate();
                }
            }

            @Override
            public void onCancelled(DatabaseError databaseError) {

            }
        };

そして、versionCode 1 から versionCode 2 に移行したとき、上記BuildConfig.VERSION_CODEが 1 であることに気付きました

私もこれを試します:

Application.getInstance().getPackageManager()
.getPackageInfo(Application.getInstance()
.getPackageName(), 0).versionCode;

versionCode にも 1 を返す

4

3 に答える 3

0

あなたの質問は明確ではありませんが、私は答えます。新しいバージョンをリリースすると、すべてのユーザーがアプリを更新すると思いますが、一部のユーザーは更新されません。古いバージョンのユーザーは、古いバージョンとしてエラーなどを報告します。

于 2017-05-20T15:30:05.107 に答える