我们最近迁移到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>'
任何想法都会受到赞赏。
答案 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依赖项部分中注释一些未使用的库来解决此错误。确保这些路径都是正确的。