14

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

每种方式我都有错误,我一直在寻找答案,但找不到任何与我们得到的完全匹配的东西。

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

  • 什么地方出了错:

    配置项目“:”时出现问题。

    未能通知项目评估侦听器。未找到名称为“默认”的配置

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

:<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 等库的引用。

构建.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')
    }
}

设置.gradle

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

任何想法,将不胜感激。

4

3 回答 3

8

如果 Gradle 无法使用 Android 插件定义的默认项目布局,您有时会收到此错误。看起来您正在尝试将 build.gradle 配置为使用旧式布局,但忘记包含一些目录(即 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 文件吗?尝试注释掉您的依赖项并一次重新添加一个,以查看何时发生错误。

于 2013-06-03T21:04:09.677 回答
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' ....

于 2013-06-03T21:55:51.057 回答
0

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

于 2013-07-31T15:40:45.183 回答