我在构建中添加自定义方法时遇到问题。gradle文件来检索git分支并提交哈希。这是我的密码:
android {
compileSdkVersion 28
defaultConfig {
applicationId "***.***.***"
minSdkVersion 21
targetSdkVersion 28
versionCode 1
versionName "1.0"
buildConfigField "String", "GIT_HASH", getGitHash()
buildConfigField "String", "GIT_BRANCH", getGitBranch()
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
def getGitHash = { ->
def stdout = new ByteArrayOutputStream()
exec {
commandLine 'git', 'rev-parse', 'HEAD'
standardOutput = stdout
}
return "\"" + stdout.toString().trim() + "\""
}
def getGitBranch = { ->
def stdout = new ByteArrayOutputStream()
exec {
commandLine 'git', 'rev-parse', '--abbrev-ref', 'HEAD'
standardOutput = stdout
}
return "\"" + stdout.toString().trim() + "\""
}
}
问题出在哪里?我得到了以下错误:
BUILD FAILED in 0s
ERROR: Gradle DSL method not found: 'getGitHash()'
我的gradle插件版本是3.5
问题在于getGitHash
和getGitBranch
方法的定义在构建的android
。格雷德尔档案。相反,它们需要位于android
部分之上。例如:
def getGitHash = { ->
def stdout = new ByteArrayOutputStream()
exec {
commandLine 'git', 'rev-parse', 'HEAD'
standardOutput = stdout
}
return "\"" + stdout.toString().trim() + "\""
}
def getGitBranch = { ->
def stdout = new ByteArrayOutputStream()
exec {
commandLine 'git', 'rev-parse', '--abbrev-ref', 'HEAD'
standardOutput = stdout
}
return "\"" + stdout.toString().trim() + "\""
}
android {
compileSdkVersion 28
defaultConfig {
applicationId "***.***.***"
minSdkVersion 21
targetSdkVersion 28
versionCode 1
versionName "1.0"
buildConfigField "String", "GIT_HASH", getGitHash()
buildConfigField "String", "GIT_BRANCH", getGitBranch()
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
这样做已解决问题
gradle中定义的自定义方法“getGitHash()”只在这个gradle文件中可用。请检查一下你是否是从外面打来的。你还需要在使用方法之前定义它,也就是说,把它放在你的代码上面。
问题内容: 我正在尝试根据指南制作一个简单的Android应用程序。我正在使用下面的代码,但它给了我几个错误。尝试覆盖该方法时抱怨。确切的错误如下。谁能解释我在这里犯什么错误? 确切的错误: 问题答案: 您应该从Activity类扩展。因为您只是在创建新类,而没有任何可以从父类覆盖的方法。
我正在学习Ruby,我有一个无法理解的bug。我有一个方法,它接受一个字符串(行)数组,并删除所有行,直到包含模式的某一行。该方法如下所示: 这工作正常,生成的字符串(行)正确显示在我正在生成的网页上。 此外,我想删除该模式后面的所有非空行。我修改了方法如下: 令人惊讶的是(至少对我来说)这不起作用。在生成的网页上,我看到的不是内容,而是错误消息:Liquid error:nil类的未定义方法“[
我面临着这个奇怪的错误,我在jsp中使用了标记,而我使用的属性名抛出了一个错误。 以下是我在
错误在最后一行,我想知道到底出了什么问题,以及如何修复它,谢谢!
我正在尝试使用Spring Boot 1.5.9在Spring数据存储库中实现自定义方法。释放我创建了存储库: 提供了自定义存储库: 以及实施: 此外,我还提供了一个调用: 只是由spring初始值设定项生成的普通xml: 在Spring Boot 1.5.9上运行项目时。RELEASE我在容器创建时遇到了一个问题: 将Spring Boot版本更改为2.1.9。发布效果很好,给了我预期的结果。
我刚刚创建了php web服务器并将其连接到firebase。当我尝试身份验证时,注册工作正常。但问题在于登录。它不断出现以下错误: 致命错误:未捕获错误:调用未定义的方法Kreait\Firebase\Auth::在 /Applications/XAMPP/xamppfiles/htdocs/firebase_series/authActions.php:24Stack跟踪:#0{main}抛出