Android Studio中的“无法parsing符号R”

在我引用R.id.something所有类中的每一个实例中, R都是红色的,并且表示“无法parsing符号R”。 也每次有R.layout.something红色下划线,并说“无法解决方法setContentView(?)”。 该项目总是很好。 看到这一直是令人讨厌的。 我已经阅读了许多其他类似的问题,但大部分都涉及从eclipse导入项目。 我正在使用我认为是Android工作室的最新版本,该项目是用android工作室创build的,没有任何解决R问题的工作。 我想知道是什么原因,如果有人知道。

更新 :解决scheme:当时android studio是全新的,我也是一个全新的开发人员。 我应该从来没有使用过Android工作室,我从来没有意识到这是如何未完成。 感谢大家的支持,因为这已经发布。 具有讽刺意味的是,这个问题的实际答案已被删除,不能被取消删除 。 我觉得我最初的答案是解决这个问题。

我原来的回答被删除了:

我想我已经find了这个问题。 这个问题是与Android Studio,每次我添加了admob库所有这些错误开始。 我所有其他没有广告的项目都没有类似的问题。 我现在使用Intelij,远离Android Studio

我也有这个问题。 一个简单的“gra净”和“gra buildbuild造”就是这样做的。


点击Build- > Clean Project ,这将执行一次gradle clean

在Android Studio的最新版本中,至less对我而言,以下工作:

“工具” – >“Android” – >“与Gradle文件同步项目”

我有类似的问题,这就是我所做的:

清理项目和与Gradle同步项目,

在这里输入图像描述

在我的SDK中检查buildTools版本 在这里输入图像描述

从build gradle(module)将minSdkVersion从8更改为9

 defaultConfig { applicationId "PackageName" minSdkVersion 9 targetSdkVersion 22 versionCode 1 versionName "1.0" } 

但是这一切都没有帮助。

最后我find了答案(这在我的情况下工作)

从build.gradle(模块:应用程序)

 android { compileSdkVersion 21 buildToolsVersion '21.0.1' ...... .... } 

要么

selectFile | 项目结构更改生成工具版本到21.1.1

在这里输入图像描述

  1. 检查你的XML文件。
  2. 清洁项目。

就是这个。

例如,我在我的strings.xml有一个条目:

 <string name="A">Some text</string> 

activity_main.xml我使用了这个string条目

 <TextView android:id="@+id/textViewA" android:text="@string/A"/> 

在与项目合作的过程中,我删除了这个项目

  <string name="A">Some text</string> 

因此, activity_main.xml变得无效。 结果:不能解决R.

所以,检查你的*.xml文件和干净的项目。

这个问题似乎有很多原因。 最近,我添加了一个活动来testing称为NewActivity。 这创build了一个名为res/menu/new.xml的文件,并且gradle不喜欢这个名字,因为new是一个保留字。

gradlew clean

要么

"Tools" -> "Android" -> "Sync Project with Gradle Files"

这些绝对是很好的尝试,但是在运行这些命令之前,您可能还需要解决一些其他问题。

如果在将java文件或目录移动到其他位置后发现此错误,则可以保证Android Studio已经变得困惑。 你猜怎么着? 撤消这些操作并不能解决问题。

所以你尝试一个干净的,但是这是行不通的。

重新启动也不起作用。

但尝试文件 – >无效caching/重新启动… – >无效和重新启动。

Android Studio维护关于哪些文件依赖于哪些其他文件的信息。 而由于移动文件周围没有正确实施,移动文件导致错误。 这还不是全部:这些依赖关系的caching被用来加速构build。

这意味着您不仅需要重新启动,还需要使这些caching失效以恢复(或更准确地说,重build)完整性。

我想如果你把你的活动文件到另一个文件夹比默认的文件夹。 您需要将com.example.yourproject.R(这是您的项目R文件NOT Android.R文件)导入到使用R的所有活动中。例如,在MainActivity文件中插入以下行:

import com.example.yourproject.R;

只需清理您的项目和同步项目与Gradle文件。 在这里输入图像描述

问题将得到解决。

我最近有这个问题,干净/build设等没有解决它。 我猜我有一个问题的地方,但不知道在哪里可以find它(是在清单,资源XML文件等?)。

如果出现问题,可以通过代码分析运行来了解它是什么。

从顶部的菜单中select:

分析 – >检查代码,使用“默认”configuration文件扫描整个项目。

您的检测结果将包含一个名为“Android”的元素。 在这里,你将得到一个列表中的资源和清单文件的问题。 这些错误将打开您的构build生成的XML文件,将显示任何红色的错误。

我的确切问题是由于我使用基于flavor的清单文件而引起的,我偶然地在<application>标签中复制了一些权限。

检查

更新:我确实有一个问题后,Android Studio仍然显示修复后的错误,即使我现在可以build立和运行完好,而错误仍然存​​在。 (我正在运行一个金丝雀build设,所以现在把它放下)

你最近更新了SDK工具吗? 启动android SDKpipe理器,并确保您拥有最新的SDK工具,这些工具现在与平台工具分开。 当我第一次更新我的SDKpipe理器时,我遇到了同样的问题,在我closures并重新打开SDKpipe理器之前,SDK 编译工具包没有显示出来进行安装/更新。

只要去Android的顶部菜单列表。 点击Build菜单,在Build下点击Rebuild Project。

在这里输入图像描述

做:build立>清洁项目

重要提示:确保在消息窗格中清除项目后没有任何错误(Alt + 0)。 如果您发现有感叹号的红色圆圈,则必须删除代码中的错误。

大多数这些错误都与@ string /或@ array /相关。 清洁工程再次完成!

这是一个非常古老的问题,但它仍然发生了很多,这里没有真正全面的答案。

我有这个问题比我想承认更多。 这可能是由各种各样的问题引起的,大多数问题都与您的项目结构不符合预期的相关。 以下列出了我所遇到的所有问题:

从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的文件夹,将您的文件分成不同的types。 从一个名为Project的项目中解决这类问题更容易,甚至可以从您的操作系统的文件系统中更容易地解决这个问题,因为Android Studio会将仅包含另一个文件夹的文件夹折叠到一行上。

特别是如果您更改了应用程序的名称,则需要确保源树main / java / com / domain / AppName已更新。 还要确保AndroidManifest.xml中的包标签是正确的。

如果您的Gradle文件或AndroidManifest.xml中有错误,这将阻止Android Studio正确构build您的资源文件。 Gradle文件有时可以通过升级Android Studio来打破,特别是1.0之前的版本。 有时候这是因为它停止支持旧版本的Gradle插件,所以你需要更新你的版本号。 有时可能很难find目前的版本。 截至今天,7/17/15,我的应用程序正在编译com.android.tools.build:gradle:1.2.3罚款。 这是在最外面的gradle文件的依赖块中,

如果您的AndroidManifest引用了一个不存在的drawable或string资源或活动,它将会中断并导致这个错误。 有时候,如果任何引用不存在的可绘制或string资源,你会得到这个错误。

如果您的资源中有损坏的文件或无效的xml文件,则会出现此错误。

根据我的经验,有时Android Studio只是无故打嗝,而您需要重新启动它和/或您的PC。 我不知道为什么,但有时它是有效的。

如果您有两个具有相同名称的xml资源,那么在不会相互覆盖的目录中,您可能会遇到此问题。 例如,可以在drawable-mhdpi和drawable-xhdpi中使用相同的名称,因为它们会根据目标设备相互覆盖,但是如果在布局和菜单中具有相同的名称,则会导致问题。 重命名或删除其中一个文件。

如果只有一些资源有这个问题,这些资源很可能在错误的目录中。

在一个案例中,我不得不完全重新安装Android Studio。 我不知道什么是错的,但它的工作。

在一个案例中,我将整个项目移动到不同的目录,并将其重新导入为一个新项目。 我不知道什么是错的,但它的工作。

带有保留字的名称的Xml文件可能会导致此问题。 重命名或删除它们。

有几种方法可以让你的Gradle文件引用一个你没有安装的构build工具的版本。 通过更改Gradle或下载适当的构build工具来纠正此问题。

最后,在你修正了错误之后,你需要清理你的Gradle项目。 您可以通过转至顶部的“生成”菜单并select“清理项目”来执行此操作。

build立>清洁项目

这对我有效。 有同样的问题几次,这似乎是正确的。 除非你改变了一些东西或者叫做variablesR.这个问题通常发生在什么地方,当我发生这种情况的时候,所以我想它只是Android的工作室而已。 哈哈

祝你有一个好的,祝你的项目好运。

当我手动重命名我的应用程序的域文件夹时,我遇到了这个问题。 要解决这个问题,我不得不

  1. AndroidManifest.xml设置<manifest>的正确的package文件夹结构。
  2. AndroidManifest.xmlandroid:name<activity>设置新的包位置。
  3. 清除caching

文件菜单 – >无效caching/重启…

一旦Android工作室重新启动并build立新的索引,问题就会消失。

这个表示法似乎工作正常。

 android:id="@+id/viewID" 

Android Studio的devise面板似乎不太好。

我有这个

  1. 我可绘制资源中的一个大写字母。
  2. 导入由Android Studio(或Eclipse)添加的Android.R
  3. xml文件错误

同样的问题。 开始时,我在我的可绘制文件夹中添加了一些图像,并尝试访问它们。 另外,图片添加了大写字母的扩展名。 这似乎已经崩溃的构build,因为即使我改名他们,消息是一样的,R是无法访问。 我所做的是,在.iml文件中,我查找了excludeFolder并将其删除(如下图所示):

  <excludeFolder url="file://$MODULE_DIR$/build/apk" /> <excludeFolder url="file://$MODULE_DIR$/build/assets" /> <excludeFolder url="file://$MODULE_DIR$/build/bundles" /> <excludeFolder url="file://$MODULE_DIR$/build/classes" /> <excludeFolder url="file://$MODULE_DIR$/build/dependency-cache" /> <excludeFolder url="file://$MODULE_DIR$/build/incremental" /> <excludeFolder url="file://$MODULE_DIR$/build/libs" /> <excludeFolder url="file://$MODULE_DIR$/build/manifests" /> <excludeFolder url="file://$MODULE_DIR$/build/res" /> <excludeFolder url="file://$MODULE_DIR$/build/symbols" /> <excludeFolder url="file://$MODULE_DIR$/build/tmp" /> 

之后,我重build了这个项目,R神奇地重新出现了。

Brother,R.java文件包含xml和java页面之间的链接。 只有在某些资源文件出现问题时才会出现“R无法parsing”。 所以最好的和有效的方法是删除最后完成的XML或在res文件中绘制。 然后再根据android编码规范从那里开始。 这是唯一的方法。 有效和正确的方法。

也使用Git来正确跟踪代码。 ..

快乐编码.. 🙂

我不得不在android studio中导入我的R包。 例如: import com.example.<package name>.R

这对我来说是一个很头痛的问题。 在我的情况下,错误出现在Android Studio(安装+ build.gradleconfiguration)中configuration“Google Play服务”后。 这反过来需要minsdk> 7,但错误是非常不清楚(实际上有关这一点的抱怨只能显示为“信息”)。 无论如何..在清单文件和build.gradle文件中将minsdk更改为8并重build项目时,错误消失了。

所以..一般的意见,如果我可以概括 – 你的清单文件,或其他一些configuration文件,可能有一些问题,阻止正确的构build。 尝试寻找真正的错误报告,即使是标题为“信息”的消息提示它可能是什么…

改变最新的sdk版本,这是我的工作

1.单击文件,然后单击项目结构2.然后select“应用程序”,然后单击确定,它为我工作。 在这里输入图像描述

显然在我的情况下,问题是通过在最后加上“*”来解决的

 import android.R.*; 

造成这个错误的原因有很多。

  1. 有时会发生replace保持相同名称的图像文件。
  2. 假设你从布局.xml中删除了一个项目,说一个<Button/>但它仍然在任何Activity或碎片.java中声明。
  3. 还有很多。

最好的方法来跟踪错误是重build它相当干净或同步做一些故意的错误。

如果它不能解决你的问题,那么必须有一些缺陷或运行时错误或错误发生,由于不正确的资源使用可能是你的代码或devise强迫gradle停止的Java或XML文件,因为(R )esource文件不能正确索引你的资源,你必须承认这一点。

如果您的项目在进行更改之前运行,则注释掉您所做的更改并尝试重build项目。

它肯定会工作,因为不会有任何变化。

要追踪确切的错误,请通过将更改分解为更小的模块来检查更改。

例如 – 如果您使用button单击并在适配器中插入列表值来显示列表,请首先检查是否可以使其可见,然后检查适配器错误。

我有同样的问题,大部分时间都是通过解决

  • 同步项目与gradle文件
  • build设 – >清洁工程
  • 文件 – >使caching失效

但是这一次,即使做了所有这些事情,错误仍然存​​在,最后我发现了罪魁祸首。

问题出在一个XML文件中 ,我已经给一个android:id而不是id资源types的普通string值。

错误

 android:id="username" 

更正

 android:id="@id/username" 

搞砸与XML文件中的resources相关的事情是这个错误的主要原因。要注意的事实,它可能不会显示为xml布局文件中的错误。

注意

在大多数情况下,编译器会向您显示消息中的错误来源。 试图在尝试其他解决scheme之前先检查它

我遇到了同样的问题,当我创build一个新项目时就会发生这种情况。

我所做的是:

  • 检查SDK更新
  • 然后android studio更新,
  • 然后重新打开该项目
  • 打开andoridmanifest.xml
  • 擦除android:标签中的“_>”之间的空格并保存。

这对我行得通。

在Android Studio 0.2.13的OS X上,我在我的一个活动中的com。<project> .R import中做了“跳转到声明”。 当我回到活动文件时,所有的警告都消失了。

编辑:你需要构build当前的构build变体,才能工作。

没有上述的答案帮助我。 我终于意识到问题在于Android Studio中缺less“构build”文件夹。 我在项目“iml”文件中find了许多行,不包括“build / *”。 删除后,生成文件出现,错误消失。

确保在项目中有AndroidManifest.xml。

我碰巧导入了一个没有清单的项目,所以Android Studio不会将其识别为Android项目。 然后我把这个项目拖入GIT,它下载了清单,但仍然没有工作。 然后我重新启动Android Studio,它说“框架检测到Android”。

所以请确保您的项目被configuration为Android项目。

在我的情况下,与Android工作室版本0.8.9有相同的错误(无法parsing符号R)后,我所做的是去文件 – >项目结构,并将JDK位置更改为我手动安装的Oracle JDK。 所以在我的情况下在Linux而不是/ usr / lib / jvm / java-7-oracle是预设的。 我把它改成了/home/phvz/App/jdk1.8.0_20保存了设置,R符号问题立即修复