当我将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
疯