简体   繁体   English

gradle类强制转换为异常:无法强制转换为“ java.lang.iterable”

[英]gradle class cast exception: cannot cast to 'java.lang.iterable'

I have an android project for which I am writing a build.gradle file. 我有一个要为其编写build.gradle文件的android项目。 I have some dependency library projects as well which will reside in the root folder. 我也有一些依赖项库项目,它们将驻留在根文件夹中。 So the structure of the folders will be something like the following, 因此,文件夹的结构将如下所示,

RootFolder: Test Project, Some library Project, Project 3 and Project 4. RootFolder:测试项目,一些库项目,项目3和项目4。

And my build.gradle looks like this, 我的build.gradle看起来像这样,

buildscript {

    repositories {
        mavenCentral()
    }

    dependencies {

        classpath 'com.android.tools.build:gradle:0.12.+'       

    }

}

apply plugin: 'android'

dependencies {

    compile 'com.android.support:support-v4:18.0.+'
    compile project(':test-library')
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile fileTree(dir: "$buildDir/native-libs", include: 'native-libs.jar')

}

ext {

    project.sourcecompatibility = "1.6"
    project.targetcompatibility = "1.6"

}

// ========================================
// Android Plugin
// ========================================

android {
    compileSdkVersion 19
    buildToolsVersion "19.1.0"


    defaultConfig {
        versionName "1.1"
        minSdkVersion 8
        targetSdkVersion 19

    }

    lintOptions {

        abortOnError false

    }

    sourceSets {

        main {

            manifest.srcFile 'AndroidManifest.xml'
            java.srcDirs = {'src'}
            resources.srcDirs = {'src'}
            aidl.srcDirs = {'src'}
            renderscript.srcDirs = {'src'}
            res.srcDirs = {'res'}
            assets.srcDir = {'assets'}

        }       

    }


    buildTypes {

        debug {
            debuggable = true
            zipAlign = false
        }


        release {           
            debuggable = false
            zipAlign = true
        }

    }
}

And I am getting the following error, 我收到以下错误,

FAILURE: Build failed with an exception.

* Where:
Build file '/Users/someuser/Desktop/Gradle Testing Projects/TestProject_GradleTest/build.gradle' line: 75

* What went wrong:
A problem occurred evaluating root project 'TestProject_GradleTest'.
> Cannot cast object 'build_23rtd5r6a61l25hprb7evd7kna$_run_closure3_closure6_closure8_closure9@22a92801' with class 'build_23rtd5r6a61l25hprb7evd7kna$_run_closure3_closure6_closure8_closure9' to class 'java.lang.Iterable'

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

BUILD FAILED

I dont understand why am I getting classcastexception and how should I fix it? 我不明白为什么我会收到classcastexception以及应该如何解决? Thanks in advance. 提前致谢。

Nevermind, it was sourceset issue. 没关系,这是sourceset问题。

 manifest.srcFile 'AndroidManifest.xml'
            java.srcDirs = {'src'}
            resources.srcDirs = {'src'}
            aidl.srcDirs = {'src'}
            renderscript.srcDirs = {'src'}
            res.srcDirs = {'res'}
            assets.srcDir = {'assets'}

should look like the following, 应该如下所示

  manifest.srcFile 'AndroidManifest.xml'
            java.srcDirs = ['src']
            resources.srcDirs = ['src']
            aidl.srcDirs = ['src']
            renderscript.srcDirs = ['src']
            res.srcDirs = ['res']
            assets.srcDir = ['assets']

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM