未找到名称为“默认”的 Android Studio Gradle 配置

我在使用 Android Studio (0.1.5)编译我的应用程序时遇到了问题。 这个应用程序使用了两个图书馆,我已经包括如下:

设置

include ':myapp',':library',':android-ColorPickerPreference'

建造,分级

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


dependencies {
compile files('libs/android-support-v4.jar')
compile project(':library')
compile project(':android-ColorPickerPreference')


}


android {
compileSdkVersion 17
buildToolsVersion "17.0.0"


defaultConfig {
minSdkVersion 7
targetSdkVersion 16
}
}

在编译的时候,我得到了这样的信息:

  Gradle: A problem occurred configuring project ':myapp'.
> Failed to notify project evaluation listener.
> Configuration with name 'default' not found.

你能帮我留言吗? 谢谢!

241498 次浏览

乍一看,一切都很正常,但是有些人在这里找到了一个可能有帮助的答案: https://stackoverflow.com/a/16905808/7944

即使是最初的答案作者听起来也不是很自信,但是值得跟进。另外,您没有说任何关于目录结构的内容,所以我假设它是无聊的默认内容,但不能确定。

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

我会仔细查看 build.gradle 中的编译项目(’: android-ColorPickerPreferences’)条目-尝试注释掉 build.gradle 中的相关代码和这一行,看看是否编译-然后从那里解决路径或库问题。

我也遇到过这个错误——我忘记为库项目创建 build.gradle 脚本了。

当得到这个错误时,我遇到了一个 git 子模块问题。尝试运行 gradle tasks --info以获得更详细的问题描述。我首先使用的是 gradle tasks --debug,它几乎没有 --info那么有用。

在我的例子中,在使用 gradle tasks --info编译之后,日志就在那里了:

评估方案: 图书馆: 排球图书馆使用空建 文件。

所以它找不到库的 build.gradle 文件。 原因是文件夹结构。

曾经是

-libraries
--volley
---VolleyLibrary

应该是的

-libraries
--VolleyLibrary

下面的程序解决了我的问题:

  • 进入子项目模块/库模块设置(选择模块后按 F4)
  • 右击 添加 > Android-Gradle
  • 将 build.gradle 添加到模块中。
  • 添加以下脚本

    buildscript {
    repositories {
    mavenCentral()
    }
    dependencies {
    classpath 'com.android.tools.build:gradle:0.6.+'
    }
    }
    
    
    
    
    apply plugin: 'android-library'
    
    
    repositories {
    mavenCentral()
    }
    
    
    android {
    compileSdkVersion 18
    buildToolsVersion "18.1.0"
    
    
    defaultConfig {
    minSdkVersion 10
    targetSdkVersion 18
    }
    
    
    sourceSets {
    main {
    manifest.srcFile 'AndroidManifest.xml'
    java.srcDirs = ['src']
    resources.srcDirs = ['src']
    aidl.srcDirs = ['src']
    renderscript.srcDirs = ['src']
    res.srcDirs = ['res']
    assets.srcDirs = ['assets']
    }
    
    
    }
    }
    
    1. 在设置中加入 include ':yourModuleName'

当我手动将 google-play-services _ lib 粘贴到我的项目中时,我遇到了这个问题。显然 Play-Services 里没有 build.gradle 文件。我学到的解决方案是将这个依赖项放在我的项目的 建造,分级中(而不是硬拷贝 play-services 目录) :

    compile 'com.google.android.gms:play-services:4.0.+'

假设您想在项目中添加一个库(例如 MyLib) ,您应该遵循以下步骤:

  1. 如果库的类型是 Eclipse ADT,则将库准备为一个等级 Android 库
    对于这个工作,在 Android Studio 中导入它就足够了
  2. 复制您的库文件夹,在本例中为 MyLib 文件夹,并将其粘贴到您的主项目文件夹中。最好在主项目文件夹中创建一个新文件夹,并将其命名为 Library
  3. 转到 Android Studio 并打开 设置,分级文件,在那里你应该在你的主项目中包含你的库。例如 include ':MyPrj', 'Libraries:MyLib'。这个 include 语句的工作目录是你的主项目文件夹。如果您粘贴您的项目到一个文件夹,您必须提及它的地址相对于主项目目录。在我的情况下,我粘贴 MyLib图书馆文件夹。这个 图书馆名称不是关键字,您可以为它选择其他名称
  4. 打开你的项目结构页面(文件-> 项目结构..。)点击模块然后点击你的主项目去依赖项选项卡点击 +然后选择 模块依赖性,这里有你的库,你可以选择他们作为你想要的

希望能有帮助

在我的例子中,我使用的是在 Windows 下工作但在 Linux 上失败的 Gradle 文件。include ':SomeProject'compile project(':SomeProject')对病例敏感,未发现。

当我手动导入我的库时,我遇到了同样的问题。我尝试用 file > import 模块添加我的库,它解决了我的问题。

我有类似的问题,并找到了非常简单的方法来添加一个库的项目。

  1. 在项目的根目录中创建文件夹“ libs”。
  2. 将 JAR 文件复制到该文件夹中。
  3. 回到 Android Studio,找到您的 JAR 文件并右键单击它,选择“ Add As Library...”,它会询问您只想将其添加到哪个模块,最好选择“ app”。

现在在您的“ app”模块中,您可以使用来自该 JAR 的类,它将能够自动定位并添加“ import”声明,并且可以很好地进行编译。唯一的问题可能是它使用绝对路径添加了依赖关系,比如:

compile files('/home/user/proj/theproj/libs/thelib-1.2.3.jar')

在你的“ app/build.gradle”里。

希望能帮上忙!

在我的例子中,当我在 build.gradle文件中拼错库(依赖项)的模块名时,我收到了这个错误。

因此,请记住检查模块的名称是否正确。

建造,分级

dependencies {
compile project(':module-name-of-the-library')
}
compile fileTree(dir: '//you libraries location//', include: ['android-ColorPickerPreference'])

在应用程序的 格莱德文件中使用以上代码行,而不是

compile project(':android-ColorPickerPreference')

希望能有帮助

我忘了拉所有子模块。所以我的

compile project(':something')

无法解决。

解决方案

git submodule update --init

模块/库的 建造,分级可以简单如下:

apply plugin: 'java'


sourceCompatibility = JavaVersion.VERSION_1_7
targetCompatibility = JavaVersion.VERSION_1_7

如果您的模块只是.java POJO 类的集合。

如果它是模型/实体类,并且您正在使用注释,并且有一些依赖关系,那么您可以将这些添加到:

apply plugin: 'java'


sourceCompatibility = JavaVersion.VERSION_1_7
targetCompatibility = JavaVersion.VERSION_1_7


repositories {
mavenCentral()
}


dependencies {
compile 'com.j256.ormlite:ormlite-core:4.48'
compile 'com.j256.ormlite:ormlite-android:4.48'
compile 'com.j256.ormlite:ormlite-jdbc:4.48'
}

在库文件夹中将导入或复制的文件夹/项目作为模块进行编译时会发生这种情况。当我没有包含 build.gradle文件时,这个问题就出现了。当我添加文件时,一切都进行得很顺利。

对我来说,它是一个相对的符号链接(到被引用的项目) ,不能按年级使用。(我指的是图书馆)。这是一个相当前沿的案件,但也许它有助于某人在未来。

我用一个绝对符号链接解决了这个问题。

ln -s ../library之前,在 ln -s /the/full/path/to/the/library之后

我也面临同样的问题,它通过在 setings.xml 中将一个标志(gradle.ext.set (“ allowLocalEdits”,true))更改为 false 来解决。

尝试添加 Volley 库,同步并运行程序。如果一个已经拉,我有截击使用和错误显示为-Android 工作室级配置与名称“默认”未找到,然后按照步骤添加截击库在您的年级。希望能有所帮助。我用这种方式解决了我的问题。

还有一个原因——我试图在 setings.gradle 中使用一个模块

include ':MyModule'
project(':MyModule').projectDir = new File(settingsDir, '../../MyModule')

唯一的问题是,我刚刚从 Eclipse 导入了模块,忘记将目录移到应用程序项目之外,也就是说,路径 '../../MyModule'不存在。

我的解决方案是简单地从 setings.gradle 文件中删除一行,它表示一个不存在的模块:

include ':somesdk'

并从主项目的 build.gradle 中删除相应的行:

compile project(':somesdk')

我通过在 设置,等级中修复一些路径来解决这个问题,如下所示:

include ':project-external-module'


project(':project-external-module').projectDir = file('/project/wrong/path')

我在我的项目中包含了一个外部模块,并且它的路径是错误的。

我最近在引用一个通过 git 子模块初始化的项目时遇到了这个错误。

我最终发现子模块(一个 java 项目)的根 build.gradle文件没有在根级别应用 java 插件。

只有

apply plugin: 'idea'

我添加了 java 插件:

apply plugin: 'idea'
apply plugin: 'java'

一旦我应用了 java 插件,‘ default not found’消息就消失了,构建成功了。

另外... 检查您的项目中是否有模块文件。

例如,我有一个使用 Volley 模块的应用程序。在我研究 Android 开发的过程中,我不小心删除了“截击”目录中的文件。.

~/git/Sandbox/android/HelloWorld/volley $ ll
total 8
drwxrwxr-x 2 ivanleon ivanleon 4096 Jun 16 22:26 ./
drwxrwxr-x 6 ivanleon ivanleon 4096 Jun 17 01:51 ../

我只是克隆了这个项目 (见下文),然后,我在 Android Studio (工具 > Android > 同步项目与分级文件)上同步了这个项目,Gradle build 正常地完成了 (Gradle Console: Android Studio 的右下角);)。

~/git/Sandbox/android/HelloWorld/volley $ git clone https://android.googlesource.com/platform/frameworks/volley
Cloning into 'volley'...
remote: Counting objects: 164, done
remote: Finding sources: 100% (164/164)
remote: Total 3222 (delta 307), reused 3222 (delta 307)
Receiving objects: 100% (3222/3222), 1.22 MiB | 114.00 KiB/s, done.
Resolving deltas: 100% (307/307), done.
Checking connectivity... done.


~/git/Sandbox/android/AndroidGetJSON $ ls volley
Android.mk      build         build.xml         pom.xml
proguard-project.txt      src    bintray.gradle  build.gradle
custom_rules.xml  proguard.cfg  rules.gradle          volley.iml

对于我来说,依赖库之一不存在于正确的路径中,但是错误消息不能正确地指向 THAT 库。

例如,我错过了 :library-3,但是错误抛向了 :library-1

可怜的孩子。

对于我来说,文件夹是在 设置,等级下声明丢失。