You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android基线配置文件设置遇INSTALL_FAILED_VERSION_DOWNGRADE错误求助

解决配置Baseline Profile模块时的INSTALL_FAILED_VERSION_DOWNGRADE错误

在Android Studio配置Baseline Profile模块时,遇到以下INSTALL_FAILED_VERSION_DOWNGRADE错误:

Exception thrown during onBeforeAll invocation of plugin AndroidTestApkInstallerPlugin: ErrorName: INSTALL_FAILED_VERSION_DOWNGRADE
NameSpace: DdmlibAndroidDeviceController
ErrorCode: 1
ErrorType: TEST
Message: Failed to install split APK(s): [/Users/james.cullimore/Desktop/someApp/baseline-profile/build/outputs/apk/nonMinifiedRelease/baseline-profile-nonMinifiedRelease.apk]
Failed to install split APK(s): [/Users/james.cullimore/Desktop/someApp/baseline-profile/build/outputs/apk/nonMinifiedRelease/baseline-profile-nonMinifiedRelease.apk]
Failed to commit install session 167650299 with command package install-commit 167650299. Error: INSTALL_FAILED_VERSION_DOWNGRADE: Downgrade detected: Update version code 0 is older than current 273
com.android.ddmlib.InstallException: Failed to commit install session 167650299 with command package install-commit 167650299. Error: INSTALL_FAILED_VERSION_DOWNGRADE: Downgrade detected: Update version code 0 is older than current 10
    at com.android.ddmlib.SplitApkInstallerBase.installCommit(SplitApkInstallerBase.java:154)
    at com.android.ddmlib.SplitApkInstaller.install(SplitApkInstaller.java:85)
    at com.android.ddmlib.IDeviceSharedImpl.installPackages(IDeviceSharedImpl.java:395)
    at com.android.ddmlib.internal.DeviceImpl.lambda$installPackages$36(DeviceImpl.java:1492)
    at com.android.ddmlib.internal.DeviceImpl.logRun3(DeviceImpl.java:1834)
    at com.android.ddmlib.internal.DeviceImpl.installPackages(DeviceImpl.java:1489)
    at com.android.ddmlib.internal.DeviceImpl.lambda$installPackages$37(DeviceImpl.java:1504)
    at com.android.ddmlib.internal.DeviceImpl.logRun3(DeviceImpl.java:1834)
    at com.android.ddmlib.internal.DeviceImpl.installPackages(DeviceImpl.java:1500)
    at com.android.tools.utp.plugins.deviceprovider.ddmlib.DdmlibAndroidDevice.installPackages(DdmlibAndroidDevice.kt:74)
    at com.android.tools.utp.plugins.deviceprovider.ddmlib.DdmlibAndroidDeviceController$executeAsync$deferred$1.invokeSuspend(DdmlibAndroidDeviceController.kt:254)
    at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
    at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
    at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:570)
    at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:749)
    at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:677)
    at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:664)

已尝试手动设置versionCode、卸载应用,但问题仍存在。以下是可行的解决方案:

1. 同步Baseline Profile模块与主应用的versionCode

Baseline Profile模块的测试APK需要与主应用保持相同的versionCode,否则会触发版本降级检测:

  • 在模块的build.gradle.kts(或build.gradle)中,明确设置与主应用一致的版本信息:
    android {
        defaultConfig {
            versionCode = 273 // 替换为主应用的versionCode
            versionName = "1.0.0" // 替换为主应用的versionName
        }
    }
    
  • 更高效的方式是在主应用中统一管理版本,模块引用主应用的配置:
    // 主应用 build.gradle.kts
    ext {
        set("appVersionCode", 273)
        set("appVersionName", "1.0.0")
    }
    
    // Baseline Profile模块 build.gradle.kts
    android {
        defaultConfig {
            versionCode = rootProject.ext.get("appVersionCode") as Int
            versionName = rootProject.ext.get("appVersionName") as String
        }
    }
    

2. 彻底清理设备上的相关组件

单独卸载主应用可能残留测试APK或组件,需彻底清理:

  • 用ADB命令查看所有相关包:
    adb shell pm list packages | grep "你的应用包名"
    
  • 卸载所有相关包(包括测试包,通常包名带.test或.baselineprofile后缀):
    adb uninstall com.your.app.package
    adb uninstall com.your.app.package.test
    adb uninstall com.your.app.package.baselineprofile
    
  • 清除设备上的安装会话缓存:
    adb shell pm clear-install-sessions
    

3. 清理项目构建缓存并重新构建

项目构建缓存可能导致版本信息异常,执行以下操作:

  • 在Android Studio中依次点击Build > Clean Project,再点击Build > Rebuild Project
  • 或使用Gradle命令清理构建:
    ./gradlew clean
    ./gradlew assembleBaselineProfileNonMinifiedRelease
    

4. 检查模块构建类型的版本配置

确认Baseline Profile模块的构建类型(如nonMinifiedRelease)中没有错误覆盖versionCode:

  • 检查模块build.gradle.kts中的buildTypes配置,避免出现类似以下错误:
    buildTypes {
        nonMinifiedRelease {
            versionCode = 0 // 错误:不要手动设置为0
        }
    }
    

内容的提问来源于stack exchange,提问作者LethalMaus

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 20:16:15