我在使用Android Studio(0.1.5)编译我的应用时遇到问题。该应用程序使用2个库,我包括如下:
settings.gradle
include ':myapp',':library',':android-ColorPickerPreference'
的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 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.
你能帮我这个消息吗?谢谢!
在我的情况下,在使用gradle tasks --info
编译后,日志就在那里:
使用空构建文件评估项目':libraries:VolleyLibrary'。
所以它找不到库的build.gradle文件。原因是文件夹结构。
它是
-libraries
--volley
---VolleyLibrary
它应该是
-libraries
--VolleyLibrary
就我而言,我使用的是在Windows下运行但在Linux上运行失败的Gradle文件。 include ':SomeProject'
和compile project(':SomeProject')
是区分大小写的,没有找到。
对于我来说,缺少了在settings.gradle下声明的文件夹。
乍一看,一切看起来都很好,但有些人在这里找到了一个可能有用的答案:https://stackoverflow.com/a/16905808/7944
即使是最初的答案作者也听起来并不自信,但值得跟进。此外,你没有说你的目录结构,所以我假设它是无聊的默认的东西,但不能确定。
这个精确错误的另一个潜在原因是:我发现这个错误是通过在build.gradle依赖项部分中注释一些未使用的库来解决的。确保这些路径都是正确的。
我看起来真的很接近build.gradle中的编译项目(':android-ColorPickerPreference')条目 - 尝试在build.gradle中注释相关代码和这一行,看看是否编译 - 然后从那里解决路径或图书馆问题。
我有类似的问题,发现了一个非常简单的方法来添加一个库到项目。
现在在您的“app”模块中,您可以使用该JAR中的类,它将能够自动定位和添加“import”声明并且编译正常。唯一的问题可能是它增加了与绝对路径的依赖关系,如:
compile files('/home/user/proj/theproj/libs/thelib-1.2.3.jar')
在你的“app / build.gradle”中。
希望有所帮助!
我通过修复settings.gradle中的一些路径解决了这个问题,如下所示:
include ':project-external-module'
project(':project-external-module').projectDir = file('/project/wrong/path')
我在我的项目中包含了一个外部模块,并且有错误的路径。
当我手动将google-play-services_lib粘贴到我的项目中时,我遇到了这个问题。显然,play-services中没有build.gradle文件。我了解到,解决方案是将此依赖项放在我的项目的build.gradle中(而不是硬复制play-services目录):
compile 'com.google.android.gms:play-services:4.0.+'
当我手动导入我的库我有同样的问题。我试图用文件>导入模块添加我的库,它解决了我的问题。
在我的情况下,当我拼错build.gradle
文件中的库(依赖项)的模块名称时,我收到此错误。
所以请记住检查模块的名称是否正确。
的build.gradle
dependencies {
compile project(':module-name-of-the-library')
}
我最近在引用由git子模块初始化的项目时遇到此错误。
我最终发现子模块的根build.gradle
文件(一个java项目)没有在根级别应用java插件。
它只有
apply plugin: 'idea'
我添加了java插件:
apply plugin: 'idea'
apply plugin: 'java'
一旦我应用了java插件,'default not found'消息就消失了,构建成功了。
我忘了拉所有子模块。所以我的
compile project(':something')
无法解决。
git submodule update --init
另外......检查项目中是否有模块文件。
例如,我有一个使用Volley模块的应用程序。在我研究Android开发期间,我不小心删除了“volley”目录中的文件。
~/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文件的同步项目),并且Gradle构建正常完成(Gradle控制台: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
您的模块/库的build.gradle可以像下面这样简单:
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
我也遇到了同样的问题,它通过在settings.xml中将一个标志(gradle.ext.set(“allowLocalEdits”,true))更改为false来解决。
对我来说,其中一个依赖库不存在于正确的路径中,但错误消息并未正确指向该库。
例如,我错过的是:library-3
,但错误抛出:library-1
。
可怜的朋友。
尝试添加Volley库并同步并运行该程序。如果有人已经拉动并且我有排球使用并且错误显示为-Android Studio Gradle配置,但未找到名称'default',那么请按照在您的gradle中添加排球库的步骤进行操作。希望能帮助到你。我这样解决了我的问题。
compile fileTree(dir: '//you libraries location//', include: ['android-ColorPickerPreference'])
在应用程序的gradle文件中使用上面的行而不是
compile project(':android-ColorPickerPreference')
希望能帮助到你
以下程序解决了我的问题:
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']
}
}
}
在settings.gradle中添加include ':yourModuleName'
我也遇到过这个错误 - 我忘了为库项目创建build.gradle脚本。
还有另一个原因 - 我试图在settings.gradle中包含一个模块
include ':MyModule'
project(':MyModule').projectDir = new File(settingsDir, '../../MyModule')
唯一的问题是,我刚从Eclipse导入模块忘了将目录移到我的应用程序项目之外,即路径'../../MyModule'
不存在。
我的解决方案是简单地从settings.gradle文件中删除一行,该文件代表一个不存在的模块:
include ':somesdk'
并从主项目的build.gradle中删除相应的行:
compile project(':somesdk')
出现此错误时,我遇到了一个git子模块问题。尝试运行gradle tasks --info
以获取更详细的问题描述。我第一次使用gradle tasks --debug
,这并不像--info
那么有用。
假设您要将库(例如MyLib)添加到项目中,您应该按照以下步骤操作:
include ':MyPrj', 'Libraries:MyLib'
。注意:此include语句的当前目录是主项目文件夹。如果将项目粘贴到文件夹中,则必须提及相对于主项目目录的地址。在我的情况下,我将MyLib粘贴到Libraries文件夹中。此库名称不是关键字,您可以为其选择其他名称+
然后选择模块依赖项并有你的库你可以根据需要选择它们希望它有所帮助