Android Studio版本:1.0.2
Gradle 版本:2.2.1
我正在迁移到android studio,目前正在尝试抓紧gradle,以便将我的ant build.xml迁移到gradle或至少以某种方式设置build.gradle,以便可以使用我以前的ant任务 Gradle 。
有关当前问题的详细信息可以在my other question中找到。
现在根据gradle文档第6.5章here,我应该能够执行以下操作:
task intro(dependsOn: hello) << {
println "I'm Gradle"
}
因此,我将以下内容添加到我的build.gradle文件中:
//noinspection GroovyAssignabilityCheck
task all(dependsOn: 'release-all') << {
}
如果我不加
//noinspection GroovyAssignabilityCheck
gradle会给我一个不同的错误:“无法推断参数类型” 。
“release-all”是在我的build.xml中定义的一个 Ant 任务,问题是,IDE(Android Studio)中的gradle编辑器将我的任务名称“all”标记为错误并声明:无法解析符号“all” 。
我还尝试在build.gradle文件下面的“android”部分的花括号内添加以上代码段,但出现相同的错误消息。
这是我特定项目中完整的gradle.build文件,即不是顶层build.gradle:
apply plugin: 'com.android.application'
android {
compileSdkVersion 19
buildToolsVersion "21.1.2"
signingConfigs {
release {
storeFile file('android.keystore')
storePassword "pwd"
keyAlias "alias"
keyPassword "pwd"
}
}
defaultConfig {
applicationId "myapp"
minSdkVersion 14
targetSdkVersion 14
testApplicationId "myapp.test"
testInstrumentationRunner "android.test.InstrumentationTestRunner"
}
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
signingConfig signingConfigs.release
}
}
}
//noinspection GroovyAssignabilityCheck
task all(dependsOn: 'release-all') << {
}
dependencies {
compile project(':myapplibrary')
compile 'com.android.support:support-v4:19.1.0'
compile 'com.android.support:appcompat-v7:19.1.0'
compile files('libs/android-support-v13.jar')
compile files('libs/ormlite-android-4.38.jar')
compile files('libs/ormlite-core-4.38.jar')
compile files('libs/osmdroid-android-3.0.10-javadoc.jar')
compile files('libs/osmdroid-android-3.0.10.jar')
compile files('libs/slf4j-android-1.5.8.jar')
compile files('libs/xmltask.jar')
}
奇怪的是:当我从命令行运行gradlew时,它实际上并没有引发任何错误。在解析build.gradle时,由于上述错误,IDE是否应该在技术上不会因IDE在编辑器中向我显示的错误而失败?
另外请注意-编辑器可以正常处理以下行:
//noinspection GroovyAssignabilityCheck
task all << {
}
不幸的是,这不是我所需要的。
最佳答案
IDE对Gradle的支持仍在不断发展。在仍然具有语法正确的脚本的同时让IDE报告错误和警告的情况并不少见。这是由于多种因素造成的,包括Groovy的动态特性以及Gradle的AST转换和元编程扩展。特别是,Gradle脚本中使用的任务声明语法是通过IDE无法识别的AST转换实现的。在大多数情况下,您可以忽略大多数“无法解析符号x”消息。
关于ant - Android Studio:无法声明自定义gradle任务,无法解决符号错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27902176/