Я использую приведенный ниже код, чтобы программно получить имя версии и код версии в классе 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
}}
Показывает правильное имя версии (0.95-DEBUG) и код версии (15) в режиме отладки, но отображает имя старой версии (0.85) и код версии (11) в режиме выпуска.
как я могу решитьЭта проблема?Я пробовал это на многих устройствах, и результат тот же.
РЕДАКТИРОВАТЬ: проблема существует в настройке> приложение> информация о приложении тоже.