问题现象:
在工作中给项目升级gradle构建版本,执行打包操作时,发现出现所有模块中都出现了找不到符号错误。
错误: 找不到符号
return BuildConfig.VERSION_CODE;
^
符号: 变量 VERSION_CODE
位置: 类 BuildConfig
问题背景:
这是因为gradle plugin 升级6.5版本以后在build.gradle需要手动指定VersionName, VersionCode,这是为了强制显性指定不同的模块的build.gradle的BuildConfig 的VersionName, VersionCode。
解决方案:
解决方案也简单,只要在用到BuildConfig.VERSION_CODE的地方加入以下两行自定义BuildConfig字段即可。
currentVersionString
代表自己项目中已经定义的版本名称,
versionPatch
代表自己项目中已经定义的版本号,请注意自行替换。
release {
buildConfigField "String", "VERSION_NAME", "\"${currentVersionString}\""
buildConfigField "int", "VERSION_CODE", "${versionPatch}"
……
}
参考来源:
- https://issuetracker.google.com/issues/158695880#comment15
- https://stackoverflow.com/a/64333972