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

Android Studio持续构建旧版本,修改Gradle版本信息仍无效求助

解决Google Play应用构建仍生成旧版本的问题

老哥,我之前也碰到过这种离谱的情况——明明改了versionCode和versionName,结果构建出来的还是带旧时间戳的老版本,清理重建也不管用。给你几个我亲测有效的排查和解决步骤:

  • 检查所有build.gradle文件,别漏了根目录和模块配置
    别只盯着app模块的build.gradle!很多项目会在根目录的build.gradle里用ext统一管理版本号(比如ext.versionCode = 14),如果这里没改,你单独改app模块的配置会被覆盖。另外还要检查flavor、buildType里有没有单独指定版本号,比如release变体里硬写了旧的versionCode,那全局配置也会失效。

  • 彻底清理构建缓存,别依赖AS的Clean Project
    Android Studio的Clean Project有时候清不干净,试试手动删除这些目录:

    • 项目根目录下的.gradle文件夹
    • app模块下的build文件夹
    • 系统级的Gradle缓存(Windows:C:\Users\<你的用户名>\.gradle\caches;Mac/Linux:~/.gradle/caches)
      删完重启Android Studio,再执行Rebuild Project试试。
  • 确认构建输出的包是新生成的
    有时候你以为拿到的是新包,其实AS输出的还是旧路径的旧文件。去app/build/outputs/apk/release(或者aab目录)里看看文件的修改时间,是不是和你构建的时间一致?另外还要确认你选的构建变体是对的——比如是不是不小心选了debug变体,而你改的是release的配置?

  • 检查Manifest和代码里的版本号覆盖逻辑
    如果AndroidManifest.xml里手动写了android:versionCode="14"和android:versionName="1.33",那Gradle的配置会被覆盖。要改成用占位符引用:

    <manifest 
        android:versionCode="${versionCode}" 
        android:versionName="${versionName}"
        ...>
    

    另外还要检查有没有代码动态修改BuildConfig的情况,比如某些逻辑在运行时覆盖了版本号。

  • 用命令行构建排除AS UI缓存问题
    有时候AS的界面缓存会误导人,试试在项目根目录执行命令行构建:

    • Mac/Linux:./gradlew clean assembleRelease
    • Windows:gradlew clean assembleRelease
      构建完成后去输出目录看包的版本信息,这样能确认是不是Gradle配置的问题,还是AS本身的bug。

按这些步骤排查下来,大概率能找到问题所在——我当时就是漏改了根目录build.gradle里的统一版本号,折腾了好半天😂

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 03:29:40