gpt4 book ai didi

android - 在 Android 应用发布版本中获取错误的版本代码和版本名称

转载 作者:行者123 更新时间:2023-12-03 03:37:38 24 4
gpt4 key购买 nike

我正在使用下面的代码在 MyApplication 类中以编程方式获取版本名称和版本代码,并将它们声明为静态成员

public class MyApplication extends Application {
Public static String MY_VERSION_NAME;
Public static int MY_VERSION_NAME;
@Override
public void onCreate() {
getPackageInfo();
}
private void getPackageInfo() {
Context context = getApplicationContext();
PackageManager manager = context.getPackageManager();
try {
PackageInfo info = manager.getPackageInfo(context.getPackageName(), 0);
MY_VERSION_NAME = info.versionName;
MY_VERSION_CODE = (int) PackageInfoCompat.getLongVersionCode(info);
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
myversionName = "Unknown-01";
}
}
}

我的应用程序 gradle 文件是:
android {
compileSdkVersion 28
buildToolsVersion '28.0.3'
defaultConfig {
applicationId "com.example"
minSdkVersion 19
targetSdkVersion 28
versionCode 15
versionName "0.95"
vectorDrawables.useSupportLibrary = true
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
debug {
applicationIdSuffix '.debug'
versionNameSuffix '-DEBUG'
}
}
lintOptions {
disable 'MissingTranslation'
}


compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}}

它在 Debug模式下显示正确的版本名称(0.95-DEBUG)和版本代码(15),但在 Release模式下显示旧版本名称(0.85)和版本代码(11)。

我该如何解决这个问题?
我在很多设备上都试过了,结果都是一样的。

编辑:问题也存在于设置>应用>应用信息中。

最佳答案

而不是使用

PackageManager manager = context.getPackageManager();
try {
PackageInfo info = manager.getPackageInfo(context.getPackageName(), 0);
MY_VERSION_NAME = info.versionName;
MY_VERSION_CODE = (int) PackageInfoCompat.getLongVersionCode(info);
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
myversionName = "Unknown-01";
}

采用
BuildConfig.VERSION_NAME
BuildConfig.VERSION_CODE

*编辑

当您想要获取信息时,YOUR_MODULE_PACKAGE_NAME 是模块的名称。

请记住,如果您传递应用程序的上下文,您将获得有关该模块的信息
PackageInfo packageInfo = getPackageManager().getPackageInfo(YOUR_MODULE_PACKAGE_NAME, 0);
packageInfo.versionName;
packageInfo.versionCode;

关于android - 在 Android 应用发布版本中获取错误的版本代码和版本名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54803001/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com