我在使用 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
编译后,日志在那里:
使用空构建评估项目":库:VolleyLibrary" 文件。
所以它找不到库的build.gradle文件。原因是文件夹结构。
它是
-libraries
--volley
---VolleyLibrary
它应该是
-libraries
--VolleyLibrary
我忘了拉取所有子模块。所以我的
compile project(':something')
无法解决。
溶液
git submodule update --init
compile fileTree(dir: '//you libraries location//', include: ['android-ColorPickerPreference'])
在应用的 gradle 文件中使用上面的行,而不是
compile project(':android-ColorPickerPreference')
希望对你有帮助
以下过程解决了我的问题:
- 转到子项目模块/库模块设置。(选择模块后按 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'] } } }
- 在设置中添加
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(添加到项目中,您应该按照以下步骤操作:
- 将您的库准备为 gradle Android 库(如果您的库类型为 Eclipse ADT(
对于这项工作,将其导入Android Studio就足够了。 - 复制库文件夹(在本例中为 MyLib 文件夹(,并将其粘贴到主项目文件夹中。最好在主项目文件夹中创建一个新文件夹并将其命名为"库">
- 转到Android Studio并打开Settings.gradle文件,在那里您应该将库包含在主项目中。例如
include ':MyPrj', 'Libraries:MyLib'
.注意:此包含语句的当前目录是主项目文件夹。如果将项目粘贴到文件夹中,则必须提及它相对于主项目目录的地址。就我而言,我将MyLib粘贴到库文件夹中。此库名称不是关键字,您可以为其选择其他名称 - 打开项目结构页面(文件>项目结构...(单击模块,然后单击您的主项目 转到依赖项选项卡单击
+
然后选择模块依赖项,这里有您的库,您可以根据需要选择它们
希望对你有帮助
就我而言,我使用的是在Windows下工作但在Linux上失败的Gradle文件。include ':SomeProject'
和compile project(':SomeProject')
区分大小写,未找到。
文件夹丢失了,该文件夹是在settings.gradle下声明的。
一看一切看起来都很好,但有些人在这里闲逛发现了一个可能有帮助的答案:https://stackoverflow.com/a/16905808/7944
即使是最初的答案作者听起来也不是很自信,但值得跟进。另外,您没有说任何关于目录结构的信息,所以我假设这是无聊的默认内容,但无法确定。
这个精确错误的另一个潜在原因:我发现这个错误是通过在build.gradle依赖项部分注释一些未使用的库来解决的。 确保这些路径等都是正确的。
我会非常仔细地查看build.gradle中的编译项目(':android-ColorPickerPreference'(条目 - 尝试注释掉build.gradle中的相关代码和这一行,看看是否可以编译 - 然后从那里解决路径或库问题。
我遇到了类似的问题,并找到了非常简单的方法来向项目添加库。
- 在项目的根目录中创建文件夹"libs"。
- 将 JAR 文件复制到该文件夹中。
- 返回Android Studio,找到您的JAR文件并右键单击它,选择"添加为库...",它只会询问您要将其添加到哪个模块,然后选择"应用程序"。
现在在您的"app"模块中,您可以使用该 JAR 中的类,它将能够自动找到并添加"导入"声明并编译正常。唯一的问题可能是它添加了绝对路径的依赖关系,例如:
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 子模块启动的项目时遇到了这个错误。
我最终发现子模块(java项目(的根build.gradle
文件没有在根级别应用java插件。
它只有
apply plugin: 'idea'
我添加了java插件:
apply plugin: 'idea'
apply plugin: 'java'
一旦我应用了java插件,"默认未找到"消息就消失了,构建成功了。
另外...检查项目中是否有模块文件。
例如,我有一个使用凌空模块的应用程序。在我研究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 > Sync Project with Gradle Files(上同步了该项目,Gradle构建正常完成(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
<</div>
div class="one_answers"> 模块/库的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
之后
我也遇到了同样的问题,它通过在设置中将一个标志(gradle.ext.set("allowLocalEdits",true((更改为false来解决.xml。
,正确的路径中不存在依赖库之一,但错误消息没有正确指向该库。
例如,我错过的是:library-3
但错误抛出:library-1
.
可怜的格拉德尔。
尝试添加 Volley 库并同步并运行程序。 如果一个已经拉动并且我有凌空使用,并且错误显示为 -Android Studio Gradle 配置,找不到名称"默认",然后按照在您的 gradle 中添加凌空库的步骤进行操作。 希望有帮助。我以这种方式清除了我的问题。