2016-03-28 62 views
0

我試圖從我的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 { –

回答

0

您的sourceSets塊似乎是在錯誤的地方。確保它直接在android區塊內,與buildTypesdefaultConfig相同。

另外,看着你的代碼,你根本不需要sourceSets塊。一切都設置爲默認。

+0

它直接在android塊內。據我所知,我的項目不是默認的。它具有Eclipse項目的默認路徑,與IntelliJ/Android Studio結構非常不同。這就是爲什麼我使用sourceSets塊:) –

+0

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

+0

我用完整的gradle文件編輯了我的答案。 –