这是我的build.gradle文件。升级到AS 1.5.1并尝试编译/同步后,我在最后一行收到错误,但程序执行正常:
apply plugin: 'com.android.application'
android {
compileSdkVersion 19
buildToolsVersion "22.0.1"
defaultConfig {
applicationId "com.dslomer64.wordyhelperton"
minSdkVersion 19
targetSdkVersion 19
versionCode 16
versionName "3.02"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
}
}
dependencies {
compile 'com.android.support:support-v4:22.2.1'
}
错误发生在上面的最后一行(compile 'com.android....-v4:22.2.1
)。
它说:
此支持库不应使用与版本不同的版本(22) compileSdkVersion(19)。
所以我将compileSdkVersion
更改为 22 ,并将minSdkVersion
和targetSdkVersion
更改为 22 ,因为仅第一次更改仍然给出了警告,但没有错误。
警告来自' defaultConfig'下来。
警告是:
defaultConfig cannot be applied to groovy.lang.Closure ... assignment with incompatible types
我该怎么办?应用程序编译并运行正常。忽略这些警告是否可以?
答案 0 :(得分:2)
这些警告可以忽略,我也在整个项目中都有这些警告。
我有一个顶级的gradle.build文件,并在较低级别的gradle.build文件中引用它的一些参数。我认为这就是我的错误来自于我的情况。 Gradle不能告诉它是什么类型的参数。
答案 1 :(得分:2)
是的,可以忽略...cannot be applied to groovy.lang.Closure
之类的消息,但如果你想修复它们,可以使用以下几个答案:
Quick fix - 设置只是一个小小的变化。
Proper and lengthy fix - 创建顶级build.gradle
。
之前错过了这一点,但感谢 Gabriele 在下面的评论中指出:
关于用于编译项目的api的警告应该 不容忽视。你必须使用相同版本的maior进行编译 释放(在这种情况下为22)否则你可能有问题。例如 使用appcompat v22,你会在使用api 19
时出错
答案 2 :(得分:0)
事实证明,我想因为升级,找不到以前包含Gradle的文件夹。我将其更改为C:\Program Files\Android\Android Studio\gradle\gradle-2.8
并且一切都很顺利,除了两个警告,都建议使用最新版本的Android,因此我进行了建议的更改(下面的新Gradle.build文件)并且没有警告:
apply plugin: 'com.android.application'
android {
compileSdkVersion 23
buildToolsVersion "22.0.1"
defaultConfig {
applicationId "com.dslomer64.wordyhelperton"
minSdkVersion 19
targetSdkVersion 23
versionCode 16
versionName "3.022"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
}
}
dependencies {
compile 'com.android.support:support-v4:23.1.1'
}
我还更改了构建,执行,部署以使Gradle使用默认的Gradle包装器而不是如上所述的本地特定文件夹(2.8,如上所述)。{/ 3>