2013-08-20 221 views
6

Android Studio无法编译我的测试项目,因为它无法解析资源。 我尝试了gradle.build中res目录的一些不同设置,但没有任何工作。我在这里错过简单的东西吗?这是一个简单的HelloWorld项目,没有任何个人信息。Android Studio无法找到我的资源

我已经因为它是由Android的工作室向导创建以下项目结构(最新版本0.2.5):

enter image description here

在我的AndroidManifest.xml有通常的应用程序名称引用:@字符串/ app_name 该字符串在main/res/values/strings.xml中定义(在上面的屏幕截图中选择)。

我从IDE(Android Studio中)得到的错误是:

android-apt-compiler: [MyApplicationProject] C:\...\MyApplication\src\main\AndroidManifest.xml:6: error: 
Error: No resource found that matches the given name (at 'label' with value '@string/app_name'). 

我在命令行中获得当我运行 “gradle这个任务” 的错误是:

A problem occurred configuring root project 'MyApplicationProject'. 
> Failed to notify project evaluation listener. 
    > Main Manifest missing from C:\...\MyApplicationProject\src\main\AndroidManifest.xml 
+0

检查这个答案http://stackoverflow.com /问题/ 16682223 /如何-DO-结构-PRO ject-test-directory-in-android-studio – robotoaster

+0

谢谢,但是你确实想告诉我吗?我已经知道这篇文章,但它专注于测试设置。需要测试文件夹以便识别我的res文件夹吗? – muetzenflo

+0

您不必指定它们,因为它们默认情况下被命名为我的屏幕截图。我所做的只是将testPackageName和testInstrumentationRunner添加到默认配置。另外我没有使用IDE来运行测试,但gradle命令 – robotoaster

回答

4

如果您在当前的Android Studio版本中遇到了这个问题,或者达到了相同的程度(例如,我将图片添加到了我的可绘制文件夹中,并且它们未被识别),您的问题可能就是我遇到的问题。

如果您在复制正在处理的项目后遇到此问题,则可能无法正确导入此新项目。

我犯了在IDE中复制和粘贴项目的错误,将其重命名(编辑清单),然后尝试处理它。这将不起作用,因为新项目仍在访问原始的res文件夹。

当复制一个项目,以免毁了你原来的你应该:

  1. 转到你的Android Studio项目文件夹(右键单击在IDE当前项目,并选择“显示在资源管理器” 。
  2. 复制粘贴+在同一目录下这个项目;因此重命名文件夹新版本的名称
  3. 在IDE转到文件>导入项目> ...并找到您的新项目的目录
  4. (继续在IDE中重命名项目。更改软件包ge name在AndroidManifest.xml中)

这样IDE为它创建一个新项目,并且它访问正确的res文件夹(不是原来的)。

虽然这可能不是解决您许多人阅读这个问题;在发现复制项目的正确方法之前,我多次遇到了这个问题。

我希望这可以节省一些人一些时间。

+1

这只是我正在寻找的解决方案。 thx为我节省了很多时间。 – Maverick1st

6

尝试在defaultConfig下添加以下内容(在android {...}内)

sourceSets { 
    main { 
     manifest.srcFile 'AndroidManifest.xml' 
     java.srcDirs = ['src'] 
     resources.srcDirs = ['src'] 
     aidl.srcDirs = ['src'] 
     renderscript.srcDirs = ['src'] 
     res.srcDirs = ['res'] 
     assets.srcDirs = ['assets'] 
    } 
} 
+0

谢谢,我当时也试过。但这是Android Studio发行版中的一个错误。自0.5.6版本以来,它工作正常。 – muetzenflo

+0

@muetzenflo如果这是答案,你应该写出来并将其标记为答案。 – ThomasW

+0

你能告诉我在哪里可以学习sourceSets包含的所有属性吗?在[gradle页面](http://www.gradle.org/docs/current/dsl/org.gradle.api.tasks.SourceSet.html)我只能找到'java'和'resources'。 – CopperCash

1

虽然这是一个很老的帖子,但@ThomasW建议将其作为正式答案:这是版本0.2.5中的一个错误 自从我使用Android Studio的新版本以来,我再也没有这个问题了。

+3

你错了 - 我在最新的Android工作室有这个问题... – Krystian

+0

嗯,这很奇怪。我每天都使用AS,自0.2.5以来从未出现过这个问题。但是,随着新的0.8.1版本的发布,内部项目管理/导入发生了很多变化。如果您找到更好的解决方案,只需在此处发布,我会将其标记为正确。也许尝试清空缓存并重新启动AS(可从文件菜单中找到) – muetzenflo

+0

我发现,在我的情况中出了什么问题 - 我在RelativeLayout中有两个视图,第一个使用关系属性和第二个(通过id) - AndroidStudio没有解决此类视图以进行预览的问题(一切正常),但是Gradle没有构建它。我不得不改变那些意见的顺序,现在它工作正常。 – Krystian

0

我这个挣扎了一会儿,一直在AndroidStudio 创造新的Maven项目的问题终于什么工作是以下(与Android Studio的测试1.0.1)

  • 上POM文件右键 - > Maven的 - >删除项目(这里如果它抱怨,一定要卸下项目的依赖)
  • 再次右键单击POM - >的Maven - >导入项目