BuildConfig.VERSION_CODE什么时候可以返回错误的int



当我将versionCode设置为 2 时,应用程序仍然报告为 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) {
            }
        };

当我从版本代码 1 转到版本代码 2 时,我注意到上述BuildConfig.VERSION_CODE是 1

我也试试这个:

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

还返回 1 作为版本代码

你的问题不清楚,但我会回答。你认为每个用户都会在发布新版本时更新其应用,但其中一些用户不会更新。旧版本用户报告错误等作为旧版本。

答案不是,而是 Build.Gradle 文件中的注释

像这样:,删除评论时,一切再次按预期工作

  defaultConfig {
        applicationId "com.toy.android"
        minSdkVersion 16
        targetSdkVersion 25
        versionCode 2
        // Semantic Versioning 2.0.0 - http://semver.org/#semantic-versioning-200
        // MAJOR version when you make incompatible API changes,
        // MINOR version when you add functionality in a backwards-compatible manner, and
        // PATCH version when you make backwards-compatible bug fixes.
        versionName "0.1.1 Alpha"
        //Android Studio 1.4 introduced limited support for vector drawables by generating
        // pngs at build time. To disable this functionality (and gain the true advantage
        // and space savings of this Support Library), you need to add vectorDrawables.
        // useSupportLibrary = true to your build.gradle file:
        vectorDrawables.useSupportLibrary = true
        manifestPlaceholders = [onesignal_app_id: "2ca652bb-260d-4c33-9d5f-6569e107ed2f",
                                // Project number pulled from dashboard, local value is ignored.
                                onesignal_google_project_number: "1098805773237"]
        //multiDexEnabled true
    }
<</div> div class="one_answers">我已经

检查过我们不应该在 Gradle 配置文件的内联注释中添加双引号。

例如:

buildConfigField "int", "DATABASE_VERSION", "2"  // remember to update "repo/docs/sqlite-versions.md"

是错误的,在代码中读作 1(如果 BuildConfig 文件是用 2 正确生成的,则无关紧要(,但是:

buildConfigField "int", "DATABASE_VERSION", "2"  // remember to update repo/docs/sqlite-versions.md

是正确的,在代码中读作 2

相关内容

  • 没有找到相关文章

最新更新