尝试创建gradle构建时出现问题

时间:2013-06-03 20:23:39

标签: android actionbarsherlock gradle android-studio

我们最近迁移到Android Studio(来自Intellij)。我目前正在尝试迁移我们的项目以使用gradle进行构建。我已经尝试使用我们当前的文件夹结构,我尝试迁移我们的文件以匹配gradle文件结构。

我每次都有错误,我一直在寻找答案,但找不到任何与我们得到的相符的东西。

尝试迁移到gradle文件结构时出现的错误是:

  • 出了什么问题:

    配置项目':'时出现问题。

      

    无法通知项目评估监听器。   未找到名称“default”的配置

我使用旧文件结构得到的错误是:

:<project>:processDebugResources
/Users/kbrown/dev/AndroidClient/<project>/build/res/all/debug/values/values.xml:311: error: Error retrieving parent for item: No resource found that matches the given name '@style/Widget.Sherlock.ActionBar.Solid'.
/Users/kbrown/dev/AndroidClient/<project>/build/res/all/debug/values/values.xml:312: error: Error: No resource found that matches the given name: attr 'background'.
/Users/kbrown/dev/AndroidClient/<project>/build/res/all/debug/values/values.xml:314: error: Error: No resource found that matches the given name: attr 'backgroundSplit'.

关于在哪里寻找的任何想法。我们确实有一些像ActionBarSherlock这样的库的引用。

的build.gradle

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:0.4'
    }
}
apply plugin: 'android'

dependencies {
    compile files('libs/android-support-v4.jar')
    compile files('libs/retrofit-1.0.0-SNAPSHOT.jar')
    compile project(':ThirdParty:ActionBarSherlock')
    compile project(':ThirdParty:drag-sort-listview')
    compile project(':ThirdParty:SlidingMenu')
    compile project(':ThirdParty:Android-ViewPagerIndicator')
}


android {
    compileSdkVersion 17
    buildToolsVersion "17.0.0"

    defaultConfig {
        minSdkVersion 8
        targetSdkVersion 17
    }

    sourceSets {
        main {
            manifest.srcFile 'AndroidManifest.xml'
            resources.srcDirs = ['src']
            res.srcDirs = ['res']

        }

        instrumentTest.setRoot('../UnitTests/src')
    }
}

settings.gradle

include ':library:Android-ViewPagerIndicator',':library:SlidingMenu',':library:drag-sort-listview',':library:ActionBarSherlock',':<project>'

任何想法都会受到赞赏。

3 个答案:

答案 0 :(得分:8)

如果Gradle无法使用Android插件定义的默认项目布局,则有时会出现此错误。看起来您正在尝试将build.gradle配置为使用oldstyle布局,但忘记包含一些目录(即java.srcDirs)。尝试类似:

sourceSets {
    main {
        manifest.srcFile 'AndroidManifest.xml'
        java.srcDirs = ['src']
        resources.srcDirs = ['src']
        aidl.srcDirs = ['src']
        res.srcDirs = ['res']
        assets.srcDirs = ['assets']
    }
}

也可能是您的某个依赖项目未正确配置。你有ActionBarSherlock和其他第三方项目的build.gradle文件吗?尝试注释掉您的依赖项并一次重新添加一个,以查看错误发生的时间。

答案 1 :(得分:2)

通过查看您的依赖项:

dependencies {
compile files('libs/android-support-v4.jar')
compile files('libs/retrofit-1.0.0-SNAPSHOT.jar')
compile project(':ThirdParty:ActionBarSherlock')
compile project(':ThirdParty:drag-sort-listview')
compile project(':ThirdParty:SlidingMenu')
compile project(':ThirdParty:Android-ViewPagerIndicator')
}

你应该在你的settings.gradle中: include ':ThirdParty:Android-ViewPagerIndicator' ....而不是include ':library:Android-ViewPagerIndicator' ...

答案 2 :(得分:0)

此精确错误的另一个潜在原因:我发现通过在build.gradle依赖项部分中注释一些未使用的库来解决此错误。确保这些路径都是正确的。