Android Studio无法找到我的资源

时间:2013-08-20 20:01:56

标签: android gradle android-gradle

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

我有以下项目结构,因为它是由Android Studio向导创建的(最新版本0.2.5):

enter image description here

在我的AndroidManifest.xml中,有通常的应用程序名称引用:@ string / 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 tasks”时从命令行获得的错误是:

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

5 个答案:

答案 0 :(得分: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']
    }
}

答案 1 :(得分:4)

如果您在当前的Android Studio版本中遇到此问题,或者在相同程度上遇到此问题(例如,我将图像添加到我的drawable文件夹中,并且无法识别它们),您的问题可能就是我遇到的问题。

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

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

复制项目时,为了不破坏你的原创,你应该:

  1. 转到Android Studio项目文件夹(在IDE中右键单击当前项目,然后选择“在资源管理器中显示”。
  2. 复制+粘贴此项目在同一目录中;相应地将文件夹重命名为新版本名称。
  3. 在IDE中转到文件>导入项目> ...并找到新项目的目录。
  4. (继续相应地在IDE中重命名项目。在AndroidManifest.xml中更改包名称)
  5. 这样IDE就会为它创建一个新项目,并且它会访问正确的res文件夹(而不是原始文件夹)。

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

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

答案 2 :(得分:1)

虽然这是一篇非常古老的文章,但@ThomasW建议将其作为正式答案:这是版本0.2.5中的错误 自从我使用较新版本的Android Studio后,我就不再有这个问题了。

答案 3 :(得分:0)

我在这方面挣扎了一段时间,并且总是在AndroidStudio中创建新的maven项目时出现问题 最终起作用的是以下内容(使用Android Studio 1.0.1测试)

  • 右键单击POM文件 - > Maven - >删除项目(如果它抱怨,请确保删除项目的依赖项)
  • 再次右键点击pom - > Maven - >导入项目

答案 4 :(得分:0)

对我有用的是为每个未在Drawable文件夹中找到的文件创建一个副本,然后删除旧文件。由于某种原因,它没有占用我的可绘制文件中的任何资源。尝试了我可以在Google上找到的所有其他内容。