如何删除与源代码相关的Android Lint警告

问题描述:

我试图从我的Android项目中删除最后一个Lint警告。我正在使用最新的IntelliJ IDEA 2016.1。如何删除与源代码相关的Android Lint警告

的警告是:

'sourceSets' cannot be applied to 
'(groovy.lang.Closure<com.android.build.gradle.api.AndroidSourceSet>)' (at line 28) 

我对那么,cannot be applied to "XXXX"别的东西比AndroidSourceSet和建议的解决方案并不适用于我的问题,看到多个问题。

我的Android摇篮插件的版本是最新的:1.5.0

这里是我的sourceSets,位于我gradle这个文件的Android的部分。

sourceSets { 
    main { 
     manifest.srcFile 'AndroidManifest.xml' 
     java.srcDirs = ['src/main/java'] 
     resources.srcDirs = ['src/main/java'] 
     aidl.srcDirs = ['src/main/java'] 
     renderscript.srcDirs = ['src/main/java'] 
     res.srcDirs = ['res'] 
     assets.srcDirs = ['assets'] 
    } 
    androidTest.setRoot('src/test/java') 
} 

当我检查gradle文档时,我看不到这有什么问题。我即将对此声明进行检查,但我想确定它没有问题。

谢谢。

编辑

以下是完整的gradle这个文件(有一些信息的隐私删除)。

buildscript { 
    repositories { 
      mavenCentral() 
    } 

    dependencies { 
     classpath 'com.android.tools.build:gradle:1.5.0' 
     classpath 'org.ajoberstar:gradle-git:1.0.0' 
    } 
} 

apply plugin: 'com.android.application' 
apply from: 'versionupdate.gradle' 

android { 
    compileSdkVersion 15 
    buildToolsVersion "23.0.1" 

    dataBinding { 
     enabled = true 
    } 

    compileOptions { 
     sourceCompatibility JavaVersion.VERSION_1_6 
     targetCompatibility JavaVersion.VERSION_1_6 
    } 

    sourceSets { 
     main { 
      manifest.srcFile 'AndroidManifest.xml' 
      java.srcDirs = ['src/main/java'] 
      resources.srcDirs = ['src/main/java'] 
      aidl.srcDirs = ['src/main/java'] 
      renderscript.srcDirs = ['src/main/java'] 
      res.srcDirs = ['res'] 
      assets.srcDirs = ['assets'] 
     } 
     androidTest.setRoot('src/test/java') 
    } 

    packagingOptions { 
     exclude 'META-INF/notice.txt' 
     exclude 'META-INF/NOTICE.txt' 
     exclude 'META-INF/license.txt' 
     exclude 'META-INF/LICENSE.txt' 
     exclude 'META-INF/ASL2.0' 
     exclude 'META-INF/LICENSE' 
     exclude 'META-INF/NOTICE' 
     pickFirst 'LICENSE.txt' 
     return true 
    } 
    signingConfigs { 
     Signing { 
      keyAlias 'somekey' 
      keyPassword 'key' 
      storeFile file('../.keystore') 
      storePassword 'password' 
     } 
    } 

    configurations { 
     all*.exclude group: 'commons-logging', module: 'commons-logging' 
    } 

    buildTypes { 
     applicationVariants.all { variant -> 
      variant.outputs.each { output -> 
       output.outputFile = file("$project.buildDir/outputs/apk/myprogram.apk") 
      } 
     } 

     debug { 
      versionNameSuffix "-SNAPSHOT" 
      //noinspection GroovyAssignabilityCheck 
      signingConfig signingConfigs.Signing 
     } 
     release { 
      //noinspection GroovyAssignabilityCheck 
      signingConfig signingConfigs.Signing 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-project.txt' 
      zipAlignEnabled true 
     } 
    } 
    return true 
} 

repositories { 
    mavenCentral() 
} 

dependencies { 
    compile 'com.google.android:android:4.1.1.4' 
    compile 'org.springframework.android:spring-android-core:1.0.1.RELEASE' 
    compile 'commons-io:commons-io:1.4' 
    compile 'org.springframework.android:spring-android-rest-template:1.0.1.RELEASE' 
    compile 'com.google.code.gson:gson:2.4' 
    compile 'org.java-websocket:Java-WebSocket:1.3.0' 
    compile 'joda-time:joda-time:2.3' 
    compile 'net.erdfelt.android:apk-parser:1.0.2' 
    compile 'org.apache.commons:commons-compress:1.9' 
    compile 'com.fatboyindustrial.gson-jodatime-serialisers:gson-jodatime-serialisers:1.2.0' 
    compile 'commons-validator:commons-validator:1.4.0' 
    compile 'com.intellij:annotations:12.0' 
} 
+0

什么是第28行? –

+0

第一行:sourceSets { –

您的sourceSets块似乎是在错误的地方。确保它直接在android区块内,与buildTypesdefaultConfig相同。

另外,看着你的代码,你根本不需要sourceSets块。一切都设置为默认。

+0

它直接在android块内。据我所知,我的项目不是默认的。它具有Eclipse项目的默认路径,与IntelliJ/Android Studio结构非常不同。这就是为什么我使用sourceSets块:) –

+0

啊,你是对的...你能分享完整的gradle文件吗? – AndroidMechanic

+0

我用完整的gradle文件编辑了我的答案。 –