升级到Android Studio 1.5.1后的build.gradle文件错误和警告

时间:2016-01-07 12:57:39

标签: android android-studio groovy

这是我的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 ,并将minSdkVersiontargetSdkVersion更改为 22 ,因为仅第一次更改仍然给出了警告,但没有错误。

警告来自' defaultConfig'下来。

警告是:

defaultConfig cannot be applied to groovy.lang.Closure ... assignment with incompatible types

我该怎么办?应用程序编译并运行正常。忽略这些警告是否可以?

3 个答案:

答案 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>