更新应用程序版本时找不到 Gradle DSL 方法
Posted
技术标签:
【中文标题】更新应用程序版本时找不到 Gradle DSL 方法【英文标题】:Gradle DSL method not found when updating application version 【发布时间】:2015-09-20 13:10:14 【问题描述】:我想在 google play store 上更新我的应用,它不能接受相同版本的更新文件。
我是否从 build.gradle 文件更改了版本:
android
compileSdkVersion 21
buildToolsVersion "21.1.2"
defaultConfig
applicationId "net.koorasudan.app"
minSdkVersion 14
targetSdkVersion 21
versionCode 5.1
versionName "5.1"
buildTypes
release
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
但是当我同步 gradle 时,它会显示这个错误:
错误:(23, 0) Gradle DSL 方法未找到:'versionCode()' 可能的原因:
项目“SmartView 3”可能正在使用不包含该方法的 Gradle 版本。 打开 Gradle 包装文件 构建文件可能缺少 Gradle 插件。 应用 Gradle 插件
如何解决这个问题?
【问题讨论】:
Gradle DSL method not found: 'runProguard' 的可能重复项 【参考方案1】:versionCode
是一个整数。
您不能在 build.gradle
中使用 versionCode 5.1
您还必须在脚本的开头添加这一行。
apply plugin: 'com.android.application'
【讨论】:
也谢谢你,我已经在脚本的开头添加了这一行。 如果这解决了您的问题,请将答案标记为正确。它可以帮助其他用户。谢谢。 将 versionCode 更改为 Integer 对我有用【参考方案2】:你是否在 gradle 文件的顶部添加了 android 插件?
apply plugin: 'android'
顺便说一句,版本代码需要是整数!从 5.1 切换到 5 就可以了!
【讨论】:
【参考方案3】:FWIW:我在测试大版本代码(>= 10 位)时遇到了这个问题。 Gradle 错误?
【讨论】:
不,这不是错误。版本代码需要是一个整数,我将它从 5.1 切换到 5 并且它工作! 大于 2100000000 的版本代码将给出完全相同的错误消息。 docs mention that this is the highest version number allowed【参考方案4】:你应该把你的版本代码作为整数。在您的应用发布后,您必须增加版本代码,以便 android 操作系统发现此版本是较新的版本。
但在版本名称中,您可以将任何您想要的内容放在字符串格式中。
希望有用
【讨论】:
【参考方案5】:版本代码应为整数格式。
请使用以下代码:
<i>
android
compileSdkVersion 21
buildToolsVersion "21.1.2"
defaultConfig
applicationId "net.koorasudan.app"
minSdkVersion 14
targetSdkVersion 21
versionCode 5
versionName "5.1"
buildTypes
release
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'),'proguard-rules.pro'
</i>
【讨论】:
【参考方案6】:只使用版本代码 2,不要使用版本代码 2.0 或任何浮点值
版本代码 2
versionName "2.0"
像这样并重新构建应用程序,它将解决您的问题
【讨论】:
以上是关于更新应用程序版本时找不到 Gradle DSL 方法的主要内容,如果未能解决你的问题,请参考以下文章
通过 gradle 配置 JOOQ Codegen 时找不到 H2 驱动程序
使用 Palantir Gradle 插件构建 Docker 容器时找不到 .jar 文件