这是一个非常老的问题,但是仍然经常发生,这里没有真正全面的答案。
我遇到这个问题的次数比我想承认的要多。它可能是由各种各样的问题引起的,这些问题几乎都与您的项目结构不符预期。以下是我遇到的所有问题的列表:
从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的问题更容易解决这种问题,甚至从OS的文件系统直接解决这个问题也很容易,因为Android Studio会将仅包含另一个文件夹的文件夹折叠到一行上。
特别是如果您更改了应用程序的名称,则需要确保源树main / java / com / domain / AppName已更新。还要确保您的AndroidManifest.xml中的package标签正确。
如果您的Gradle文件或AndroidManifest.xml中存在错误,这将阻止Android Studio正确构建资源文件。有时可以通过升级Android Studio来破坏Gradle文件,尤其是从1.0之前的版本升级时。有时这是因为它不再支持Gradle插件的旧版本,因此您需要更新版本号。有时可能很难找到当前版本。截至今天(2015年7月17日),我的应用可以通过com.android.tools.build:gradle:1.2.3
。这在最外面的gradle文件中的依赖关系块中,
如果您的AndroidManifest引用了不存在的可绘制或字符串资源或活动,它将中断并导致此错误。有时,如果任何内容引用了不存在的可绘制对象或字符串资源,则会出现此错误。
如果您的资源中有一个损坏的文件或无效的xml文件,则会收到此错误。
以我的经验,有时Android Studio会无缘无故打,,您需要重新启动它和/或PC。我不知道为什么,但是有时候可以。
如果在彼此不覆盖的目录中有两个具有相同名称的xml资源,则可能会出现此问题。例如,您可以在drawable-mhdpi和drawable-xhdpi中使用相同的名称,因为它们会根据目标设备相互覆盖,但是如果您在布局和菜单中使用相同的名称,则会导致问题。重命名或删除其中一个文件。
如果只有一些资源有此问题,则这些资源很可能位于错误的目录中。
在一种情况下,我必须完全重新安装Android Studio。我不知道出什么问题了,但是它奏效了。
在一种情况下,我将整个项目移到另一个目录,然后将其重新导入为新项目。我不知道出什么问题了,但是它奏效了。
具有名称保留字的Xml文件可能会导致此问题。重命名或删除它们。
Gradle文件最终有几种方法可以引用尚未安装的构建工具的版本。通过更改Gradle或下载适当的构建工具来更正此问题。
最后,修复所有错误之后,需要清理Gradle项目。为此,请转到顶部的“生成”菜单,然后选择“清理项目”。