这是一个非常古老的问题,但它仍然经常发生,并且这里没有真正全面的答案。
我遇到这个问题的次数比我想承认的要多。它可能是由各种各样的问题引起的,这些问题大多与您的项目结构不符合预期有关。以下是我遇到的所有问题的列表:
从 Eclipse 导入到 Android Studio 并不总是很顺利,尤其是使用旧版本的 Android Studio。确保您使用的是正确的目录树。对于一个中等成熟的应用程序,它应该如下所示:
AppName/ // AppName is your app's name, obviously
.gradle/ // This is a compiler created directory. You should normally leave it alone
.idea/ // Ditto
build/ // This too
gradle/ // And this
app/
build/
libs/
src/
androidTest/ // Tests based on the Android instrumentation runner should go here
main/
java/
fully/ // Typically com
qualified/ // the domain name. Longer package
// names may have deeper folder trees
AppName/ // All your java files go here
res/
drawable-*/ // One of these for each resolution you support
layout/ // All of your general layouts
menu/ // All of your menu layouts
values/ // All of your resource xml files
xml/ // PreferenceScreen layouts go here
AndroidManifest.xml
debug/
test/ // Pure jUnit tests should go here
.gitignore
app.iml
build.gradle // This is the gradle file you should be making most changes to
proguard-rules.pro
.gitignore
build.gradle // This gradle file should mostly be left alone
gradle.properties
gradlew
local.properties
AppName.iml
settings.gradle
在您的 IDE 中可能看起来不像这样。文件树上方有一个下拉菜单,它以不同的方式显示您的文件,它在我的系统上默认为一个名为 Android 的系统,它将您的文件分成不同的类型。从名为 Project 的项目中解决此类问题更容易,直接从您的操作系统的文件系统中更容易解决,因为 Android Studio 会将仅包含另一个文件夹的文件夹折叠到一行中。
特别是如果您更改了应用程序的名称,您需要确保源代码树 main/java/com/domain/AppName 已更新。还要确保你的 AndroidManifest.xml 中的包标签是正确的。
如果您的 Gradle 文件或 AndroidManifest.xml 中存在错误,这将阻止 Android Studio 正确构建您的资源文件。有时升级 Android Studio 会破坏 Gradle 文件,尤其是从 1.0 之前的版本开始。有时这是因为它停止支持旧版本的 Gradle 插件,因此您需要更新版本号。有时很难找到当前版本。截至今天,2015 年 7 月 17 日,我的应用程序使用 com.android.tools.build:gradle:1.2.3 编译正常。这是在最外层的 gradle 文件中的 dependencies 块中,
如果您的 AndroidManifest 引用了不存在的可绘制资源或字符串资源或活动,它将中断并导致此错误。有时,如果任何内容引用了不存在的可绘制资源或字符串资源,您将收到此错误。
如果您的资源中有损坏的文件或无效的 xml 文件,您将收到此错误。
根据我的经验,有时 Android Studio 会无缘无故地出现问题,您需要重新启动它和/或您的 PC。我不知道为什么,但有时它会起作用。
如果你有两个同名的 xml 资源,在不相互覆盖的目录中,你可能会遇到这个问题。例如,您可以在 drawable-mhdpi 和 drawable-xhdpi 中使用相同的名称,因为它们会根据目标设备相互覆盖,但如果您在布局和菜单中使用相同的名称,则会导致问题。重命名或删除其中一个文件。
如果只有部分资源存在此问题,则这些资源很可能位于错误的目录中。
在一种情况下,我不得不完全重新安装 Android Studio。我不知道出了什么问题,但它确实有效。
在一种情况下,我将整个项目移动到不同的目录,并将其作为新项目重新导入。我不知道出了什么问题,但它确实有效。
名称保留字的 XML 文件可能会导致此问题。重命名或删除它们。
您的 Gradle 文件可以通过多种方式最终引用您尚未安装的构建工具版本。通过更改 Gradle 或下载适当的构建工具来纠正此问题。
最后,在您修复了任何错误之后,您需要清理您的 Gradle 项目。为此,您可以转到顶部的 Build 菜单并选择 Clean Project。