2016-01-10 38 views
0

我一直在一个应用程序工作,一切进展顺利,一切工作正常。然后我在主要活动中修改了一些代码,当我尝试运行应用程序时,代码中出现明显错误,构建失败。android studio无法解析符号R

之后,所有对我的布局文件的引用都不再起作用(即R.layout。)。R是红色的,悬停在“无法解析符号R”上。

搜索你会发现几十个帖子,提出了许多修补程序,如:Clean Project;重建项目;与Gradle文件同步项目;使Cashes/Restart无效;检查xml的错误,重新启动Studio等...我已经尝试过所有。

无法在我的情况下工作。

我的代码工作正常,没有错误,因为我可以创建一个新的Android Studio项目,并添加我的类和资源。新的Android Studio项目将使用不同的包名称运行SAME CODE。

我后来遇到了同样的问题,我依稀记得从我的项目文件夹中删除了某些东西(可能是文件夹或文件)。我不记得我删除了什么,但确实解决了问题。

感谢您的任何建议。

我终于得到了Android Studio没有错误,但老实说我不知道​​这是怎么发生的。我非常困惑的是,每次将项目复制到归档目录并重新开始时,我都可以创建一个可以工作的项目,并且不会有多个副本(我必须从头开始重新创建项目10次)。我的构建需求之一是我需要在Jelly Bean上编译,我认为当您使用空白活动打开一个新项目时,Android Studio会设置某种默认设置。总之,每一个发生R.错误时生成警告将显示此:

<style name="Base.Widget.AppCompat.Spinner.Underlined" parent="android:Widget.Material.Spinner.Underlined 

但我的代码不包含一个微调,让我实在想不通的地方,这是来自哪里。事实上,我试图用我的工作副本(清单,代码,gradle.build等)中的文件替换我的一个无法保存的项目中的文件,但一旦无法运行,似乎Studio项目将保持这种状态。

我希望我可以重现这个问题,但我不能。

WTF!在认为我解决了这个问题后,它又回来了。从我的工作项目中,我做了2件事。添加了一个非常简单的活动,并将其添加到清单中。试图运行该项目,并再次获得同样的错误,引用一个微调。 Gradle构建消息是:

C:\CargoBay\Android\LandApp\app\build\intermediates\res\merged\debug\values-ldltr-v21\values-ldltr-v21.xml Error:(3) Error retrieving parent for item: No resource found that matches the given name 'android:Widget.Material.Spinner.Underlined'.

我从我的项目中删除了新代码,但它仍然无法构建。

我不知道现在该想什么。

+0

还手动删除所有“构建”文件夹不帮助吗? –

+0

你可以尝试删除“bin”和“gen”并清理构建吗? –

+0

当我删除“build”文件夹时,Studio将其替换,而R.仍然无法解析。 ..很抱歉,我不知道“bin”和“gen”指的是什么(没有找到这些名字的文件夹)。 – user2254532

回答

0

在Android Studio中选择你的项目文件夹,进入VCS/Local History/Show History。显示历史记录将列出已移动或删除的所有文件,并为您提供恢复文件的选项。 如果您选择主要活动代码,它将显示代码更改的历史记录,并且您可以恢复到之前运行的代码。

enter image description here

+0

你假设OP使用VCS? –

+0

本地历史记录内置于Android Studio,并自动记录所有项目的更改,无需用户操作。 –

+0

有趣。猜猜我从来没有真正需要这个功能足够使用它 –