“无法解析符号R”在Android Studio中

在我引用R.id.something的所有类的每个实例中,R都是红色的,它说“无法解析符号R”。而且每次出现R.layout.something时,它都用红色下划线表示“无法解析方法setContentView(?)”。该项目总是构建得很好。一直看到这一点很烦人。我在这里阅读了许多其他问题,这些问题与从Eclipse导入项目有关。我使用的是我认为是最新版本的Android Studio,该项目是用Android Studio创建的,并且没有任何“无法解决R”问题。如果有人知道,我想知道是什么原因造成的。

1166448 次浏览

您最近更新了您的SDK工具吗?启动android SDK管理器并确保您拥有最新的SDK工具,它现在与平台工具分开。当我第一次更新SDK管理器时,我遇到了同样的问题,SDK建立工具包没有显示安装/更新,直到我关闭并重新打开SDK管理器。

我也有同样的问题,当我创建一个新项目时就会发生。

我所做的是:

  • 检查SDK更新
  • 然后安卓工作室更新,
  • 然后重新启动项目
  • 打开andoridmanifest.xml
  • 擦除android中“_>”之间的空格:标记并保存。

这对我有用。

这个符号似乎工作得很好。

android:id="@+id/viewID"

Android Studio的设计面板似乎不太好用。

我也遇到了这个问题。一个简单的“gradlew清洁”和“gradlew构建”就解决了这个问题。


单击建设>清洁项目,将执行gradle清洁

显然,在我的情况下,问题通过在末尾添加"*"来解决

import android.R.*;

我有这个与

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

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

编辑:您需要在这之前构建当前的构建变体。

在最新版本的Android Studio中,至少对我来说,以下工作:

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

在最新的Android Studio 3.1.3(2018年7月)中,“Sync Project with Gradle Files”在主菜单栏中可用。

在此处输入图片描述

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

gradlew clean

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

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

我将XML文件放在LAYOUT文件夹而不是MENU文件夹中。

这是从Eclipse迁移到Android Studio的结果。

对我来说,解决方案很简单……将我的XML文件移动到MENU文件夹并重新编译。

这对我来说是一个很大的头痛。在我的情况下,错误出现在Android Studio中配置“Google Play服务”后(安装+build.gradle配置)。这反过来又需要minsdk>7,但错误非常不清楚(实际上对此的投诉仅显示为“信息”)。无论如何…在清单文件和build.gradle文件中将minsdk更改为8并重建项目时,错误消失了。

所以…关于这个的一般建议,如果我可以概括的话-你可能在清单文件或其他配置文件中遇到一些问题,这阻止了正确的构建。试着仔细查看错误报告,甚至是标题为“信息”的消息,以获取有关它可能是什么的任何提示……

上述答案都没有帮助我。我终于意识到问题是Android Studio中缺少“构建”文件夹。我在项目“iml”文件中发现了许多行,不包括“构建/*”。删除这些行后,构建文件出现,错误消失了。

我认为如果您将活动文件放在默认文件夹之外的另一个文件夹中。您需要使用Rcom.example.yourproject.R(这是您的项目R文件而不是Android.R文件)导入所有活动。例如,在MainActivity文件中插入以下行:

import com.example.yourproject.R;

同样的问题。当我在我的可绘制文件夹中添加一些图像并尝试访问它们时开始。此外,添加的图像具有大写字母的扩展名。这似乎已经崩溃了构建,因为即使我重命名它们,消息也是一样的,并且无法访问R。我所做的是,在. iml文件中,我查找了排除文件夹并删除了它们(如贝洛):

  <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" />

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

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

还可以使用Git来正确跟踪代码。…

确保您在项目中AndroidManifest.xml。

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

因此,请确保您的项目配置为Android项目。

我遵循了上面的所有内容,但它不起作用。在我的情况下,当我为Android-L预览版设置每个红色的Java函数时,我必须设置JDK…

在Mac上:

  1. 单击一次代码中的红色(或下划线)(即活动、字符串)。
  2. 点击左边出现的红灯泡点。
  3. 选择“设置JDK”。
  4. 验证annotations.jar和android.jar是否在您正在使用的当前SDK版本中(我的案例SDK 20 Android-L)。您还应该有“res”文件夹,但我不知何故仍然在设置中拥有它。
  5. 如果没有,请选择SDK并按“-”。
  6. 然后按“+”并在计算机上找到SDK文件夹(Mac:应用程序>AndroidStudio.app>sdk)。
  7. 选择您需要的SDK版本(在我的情况下为20 Android L)。
  8. 按添加。
  9. 构建和同步。

然后一切对我来说都恢复了正常。

我必须在android工作室导入我的R包。例如:import com.example.<package name>.R

在我的情况下,在android Studio版本0.8.9出现相同的错误(无法解决符号R)后,我所做的是转到文件->项目结构并将JDK位置更改为我手动安装的oracle JDK。所以在我的Linux情况下,而不是 /usr/lib/jvm/java-7-oracle这是预设的。我将其更改为 /home/phvz/App/jdk1.8.0_20保存了设置,R符号问题立即得到修复

只需清理您的项目并将项目与Gradle文件同步即可。在此处输入图像描述

问题就会得到解决。

在我的情况下,代码在我更新Android Studio之前正常工作。更新后没有生成R文件。我正在处理自定义视图并有一个属性

<attr name="showText" format="boolean" />

在我的声明样式化。这个相同的属性也被系统的用户界面使用:

<style name="Base.Widget.AppCompat.CompoundButton.Switch" parent="android:Widget.CompoundButton">
<item name="track">@drawable/abc_switch_track_mtrl_alpha</item>
<item name="android:thumb">@drawable/abc_switch_thumb_material</item>
<item name="switchTextAppearance">@style/TextAppearance.AppCompat.Widget.Switch</item>
<item name="android:background">?attr/selectableItemBackgroundBorderless</item>
<item name="showText">false</item>// this line
</style>

我将之前的showText重命名为展示文本格式,然后重新生成R.java文件的gradle sync。

这是最近删除的xmls造成的 在Android Studio中,通过选择以下方式从这些xmls中清理您的项目: 构建->清洁项目

我在可绘制资源中添加了一些图像,其中一个图像被命名为“超级.jpg”,这是一个原因。

重命名图像并使用gradle文件同步项目的之后修复了错误。

这些都不适合我在Ubuntu 12.04上工作。我必须执行以下操作:

sudo apt-get install lib32stdc++6
sudo apt-get install lib32z1

在那之后,我遵循了这个线程中的其他一些建议,做了Build->Clean Project,一切都很好。

  1. 检查您的xml文件。
  2. 清洁项目。

这就是了。

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

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

activity_main.xml中,我使用了这个字符串条目

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

在做项目的时候我把它删了

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

因此activity_main.xml变得无效。结果:无法解析R。

因此,检查您的*.xml文件并清理项目。

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

清洁项目并与Gradle同步项目,

输入图片描述

在我的sdk中检查build dTools版本 在此处输入图片描述

从构建gradle(模块)更改minSdkVersion从8到9

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

但这一切都没有帮助。

最后我找到了答案(这在我的情况下有效)

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

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

选择文件|项目结构将构建工具版本更改为21.1.1

输入图片描述

我有未解决的R问题,因为两个地方有相同的image.png文件。一个在res>anim中,一个在res>Draable-hdpi中。这导致R成为未解决的。 我通过制作启动屏幕图像并反复将其从Moray图形目录直接移动到Android项目来创建问题。我一定是偶然将其放入res>anim文件夹。我通过从res>anim文件夹中删除重复的图像文件来修复问题,Android工作室自行纠正。

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

我遇到这个问题的次数比我想承认的要多。它可以由各种各样的问题引起,这些问题大多与您的项目结构不符合预期有关。这是我遇到的所有问题的列表:

从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/dom/AppName已更新。还要确保AndroidManifest.xml中的包标签是正确的。

如果您的Gradle文件或AndroidManifest.xml中存在错误,这将阻止Android Studio正确构建您的资源文件。Gradle文件有时可以通过升级Android Studio来破坏,尤其是从1.0之前的版本。有时这是因为它停止支持旧版本的Gradle插件,所以您需要更新版本号。有时很难找到当前版本是什么。截至今天,7/17/15,我的应用程序使用com.android.tools.build:gradle:1.2.3编译良好。这在最外层gradle文件的依赖项块中,

如果您的AndroidManifest_引用了不存在的可绘制或字符串资源或活动,它将中断并导致此错误。有时,如果有任何内容引用了不存在的可绘制或字符串资源,您将收到此错误。

如果您的资源中有损坏的文件或无效的xml文件,您将收到此错误。

根据我的经验,有时Android Studio会无缘无故地打嗝,您需要重新启动它和/或您的PC。我不知道为什么,但有时它会起作用。

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

如果只有某些资源存在此问题,则这些资源很可能位于错误的目录中。

在一种情况下,我不得不完全重新安装Android Studio。我不知道出了什么问题,但它有效。

有一次,我将整个项目移动到另一个目录,并将其作为新项目重新导入。我不知道出了什么问题,但它奏效了。

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

有几种方法可以使您的Gradle文件最终引用您没有安装的构建工具版本。通过更改Gradle或下载适当的构建工具来纠正这一点。

最后,在修复了错误之后,您需要清理您的Gradle项目。您可以通过转到顶部的Build菜单并选择Clean Project来执行此操作。

我做了make project,它起作用了 但在此之前,请尝试检查清单中的包名称,重建并清理您的项目。如果问题没有解决,请让您的项目

我在安卓清单中有android:textAllCaps = "false",这对R file造成了严重破坏。我删除了它,一切都很好。我认为target sdk设置得不够高。

更改最新的sdk版本,这对我来说是工作

1.单击文件,然后单击项目结构 2.then选择“app” 然后点击确定,它为我工作。 输入图片描述

如果您在移动java文件或目录到其他位置之后看到此错误,那么您可以保证Android Studio已被混淆。你猜怎么着?撤消这些操作并不能解决问题。

所以你尝试清洁,但这不起作用。

而且重启也不行啊

但是试试文件->无效缓存/重新启动…->无效和重新启动

Android Studio维护有关哪些文件依赖于哪些其他文件的信息。由于移动文件未正确实现,移动文件会导致错误。这还不是全部:使用这些依赖项的缓存来加速构建。

这意味着您不仅需要重新启动,还需要使这些缓存无效以恢复(或更准确地说,重建)理智。

当我导入google-services.json文件以实现Analytics时,我遇到了这个问题。我已经在xml文件夹中global_tracker.xml文件。在构建过程中,当合并google-services.json文件中的内容时,错误开始发生。

删除goolgle-services.json文件后解决错误。

我最近遇到了这个问题,清洁/构建等没有解决它。我猜我在某个地方遇到了问题,但不确定在哪里可以找到它(是在清单、资源xml文件等中吗?)。

当出现问题时,您可以通过执行代码分析来找出它是什么。

从顶部的菜单中选择:

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

您的检查结果将包含一个名为“Android”的元素。在这里,您将获得导致资源和清单文件中出现问题的任何内容的列表。错误将打开您构建中生成的xml文件,该文件将以红色显示任何错误。

我的确切问题是因为我使用基于味道的清单文件,并且我意外地在味道中的<application>标签中复制了一些权限。

检查

更新:我确实有一个问题,Android Studio在修复后仍然显示错误,即使我现在可以构建和运行非常好,而错误仍然存在。(我正在运行金丝雀构建,所以现在把它归结为)

上述答案都没有解决我的问题。所以我添加了我的解决方案,以防有人遇到类似的问题。在我的build.gradle依赖关系中,

compile 'com.android.support:appcompat-v7:22+'

我的编译版本是 compileSdkVersion 21,所以android工作室不高兴。我只是将我的compilesdkversion更新到23并进行同步。

我还更新了依赖项为

compile 'com.android.support:appcompat-v7:23.1.1'

以匹配我在工具-->Android-->SDK管理器-->SDK工具选项卡-->Android支持库-->版本中的支持库。 现在一切都很好。编码快乐:)

在我的情况下:res/someLayout.xml文件出现一些错误,然后我解决它。 然后清除项目。 错误消失了

我目前也有类似的问题。问题是在我的项目中我有更多的模块。例如。app模块和library模块。尽管类和R.string资源都来自app模块,但我不知何故在那里放了import com.package.library.R。不知何故,Android Studio没有认识到这是一个错误,Gradle/Sync构建我的项目没有问题。但是当我尝试运行单元测试Gradle构建失败时,出现了描述的错误。

package com.package.app


import com.package.library.R;
//...


class SomeClass {
//...
public void someMethod() {
Toast.make(context, R.string.message, TOAST_LONG).show();
}
}

R.string.messsage资源实际上在我的com.packagename.app模块而不是com.packagename.library模块中时。删除import ...解决了我的问题。

构建>清洁项目

这对我有用。有几次同样的问题,这似乎解决了它。除非你改变了什么或调用了一个变量R。这个问题通常发生在我身上,所以我想这只是Android工作室吓坏了。哈哈

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

只需转到Android Top菜单列表。单击构建菜单,在Build下单击重建项目。

在此处输入图片描述

做:建设>清洁项目

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

大多数情况下,这些错误与@string/或@ray/相关。再次清理项目并完成!

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

  1. 有时它发生在替换保持相同名称的图像文件时。
  2. 假设您从布局. xml中删除了一个项目,例如<Button/>,但它仍然在任何活动或Frament. java中声明。
  3. 更多。

跟踪错误的最佳方法是重建它,而不是干净或同步做一些故意的错误。

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

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

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

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

例如-如果您通过单击按钮并在适配器中插入列表值使列表可见,请首先检查您是否能够使其可见,然后检查适配器错误。

在我的情况下,我需要修复我的布局XML文件中的一些错误。没有图标表明文件包含错误。然而,当我单击它们时,我注意到几条红线。修复它们后,找到了R

我遇到了这个问题,特别是当我不小心损坏了布局菜单资源文件时。我遇到无法解析符号R的情况是当我忘记添加“@+id”时,我必须在菜单项中定义一个ID。

使用损坏的菜单资源文件,如果我尝试使用它构建项目,我会收到此错误。因为R是资源的容器类,所以当它无法解析资源. xml文件时,似乎gradle无法绑定R

解决方案只是修复资源文件,清理项目并再次重建。

对我有用的是:

  1. 创建了一个新项目。

  2. 发现R正在wokring!

  3. 比较所有配置。
  4. 在gradle文件中发现差异:编译'com.android.support: appcompat-v7:23.4.0'

  5. 同步,它又工作了!

您只需要检查您的Xml文件。 如果出现错误,则无法解决此错误。 只需解决xml中的错误,然后尝试。

清理您的项目从构建->清洁

在新的android Studio 2.2中。如果您的TargetSDK=<15,那么您也可能会发现此问题。在gradle.build中更改此项,然后按照之前的答案执行步骤。同步gradle文件并重建。您还可以使缓存无效并重新启动工作室,这有时也有帮助。

我想我有最终的解决方案。我做了一项研究,发现Android Studio讨厌安装路径或目录中的“空白”。它不接受放置在包含空白的目录中的SDK。例如

C:\程序文件(x86)\Android\sdk

这里,我已经回答了一个问题,一个人无法在Android Studio中更改他的JDK路径,因为他的SDK目录中有一个空格。这很奇怪,但似乎Android Studio讨厌带有空格的目录。所以解决方案是-

在没有空格的目录或路径中安装Android Studio和Android SDK。

例如-安装Android Studio在

C:\AndroidStudio\

并安装Android SDK在

C:\Sdk\

这两个目录都有效,因为没有任何空格。每个不包含空格的路径都是有效的。它还解决了其他问题,例如“未能解决:jUnit: jUnit: 4.12”或“Gradle同步项目失败”等。

我在将gradle插件从版本1.3.1升级到

classpath group: 'com.android.tools.build', name: 'gradle', version: '2.2.1'

它迫使我改变所有的参考资料

import [applicationId].R;

import [package].R;

在我的库项目中,appcontext.getPackageName();停止正常工作。我用它通过反射获得正确的应用程序资源,但在升级gradle插件后,它开始返回特定于风味的应用程序ID,而不是包……你可以阅读更多关于这个这里的信息。

我有同样的问题,大多数时候它是通过

  • #带有gradle文件的EYZ0
  • 建设->清洁项目
  • 文件->无效缓存

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

问题出在xml文件中,我为android:id而不是id资源类型给出了普通字符串值。

错误

android:id="username"

更正

android:id="@id/username"

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

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

还有一件事要尝试…

  1. 删除构建文件夹
  2. 通过同步gradle重建项目

我已经尝试了很多其他的建议,比如

  • 清理项目,
  • 重新启动Android Studio,
  • 修复我的xml中的错误,
  • 将项目与Gradle文件同步,以及
  • 更新构建工具版本,

但这些都没有奏效。

我终于手动删除了整个构建文件夹(在备份我的项目之后),然后重新启动了Android Studio。之后,我在我的应用程序build.gradle文件中做了一个小编辑(添加和删除了一个空格),然后单击同步。(我可能只是做了工具>Android>同步项目与Gradle文件从菜单中。)之后它工作了。构建文件夹中的某些东西损坏了,重新开始一个新的构建修复了它。

我不知道是否有人在解决方案列表中读到这么远,但无论如何我都会添加这个答案。

伙计们,我认为这里有很多黑暗中的镜头。在某些情况下,清洁和同步项目只有在您解决问题后才会有所帮助。

Step1: 因此,请查看每个文件的顶部,其中指定了包,如下pakage="YourURL.YourProject";,并确保指定了正确的包(Your Own Project)。 您将在java文件和AndroidManifest.xml中找到这一点,并且java文件引用正确的包至关重要,因为该包包含您指向的资源(“R”)。如果他们不匹配,则会发生错误无法解析符号R

Step2: 干净,同步,随便什么。完成

那么为什么这是随机发生的,或者我做错了什么?

如果你是复制和粘贴的代码,你应该密切注意上面解释的“包=”。更重要的是,当你粘贴代码时,它会立即运行一个类调试器(对不起,我的技术术语不好)向你显示“推定错误”,它会立即考虑“错误包”,你会得到所有的错误。 因此,即使您在粘贴后立即更正了符号,调试器也已经刷新了。这就是为什么“干净,同步,无论什么”工作有时候

首先检查任何xml布局中是否有任何错误,如果有,请先解决它。

否则,从项目中删除jUnit依赖并重建项目。输入图片描述

//有时由于不完全同步会产生问题

//所以只要按照步骤,它肯定会做你的工作

Click on Build->Clean Project and that will perform a gradle clean

看看Gradle控制台。在我的例子中,我包含了一个文件扩展名错误的资源。

AAPT: libpng error: Not a PNG file
:app:mergeDebugResources FAILED


FAILURE: Build failed with an exception.

重命名文件和Sync Project with Gradle Files后,一切都很好。

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

  1. AndroidManifest.xml中设置正确的package文件夹结构<manifest>
  2. AndroidManifest.xml中为<activity>android:name设置新的包位置。
  3. 通过清除缓存

文件菜单->无效缓存/重新启动…

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

每次对我有用的一件事是:

转到项目的build.gradle (Module: app)文件->做一点更改(例如:将<space>放在某处并将其删除)->然后android工作室会要求您将sync您的gradle文件->在文件的右上角->select "sync now"

同步完成后,它将在大多数情况下解决问题。

我正在做一个multi-module项目。当我把所有的用户界面代码移到一个新模块时,就发生了这种情况。

以下是我解决问题的方法: 我发现当我在/res/values中创建新的ui module时,它创建了一个新的strings.xml,其中没有任何有用的东西。 我删除了那个strings.xml文件,rebuild项目,它起作用了。

我有一个特殊的案例来解决这个问题。

在我的项目中,一切都很顺利,它可以编译和构建成功,但在我的Android Studio IDE中(我也尝试了智能IDEA,他们处于相同的情况),R.java文件不能很好地解决,总是被红线删除。

就像这样: 输入图片描述

这几乎让我发疯,我无法忍受编程时的阅读颜色。

最后我发现这个棘手的问题是由我R.java的文件大小引起的。 我的项目非常庞大,它支持多种语言和多种屏幕尺寸。有这么多资源,我R.java的文件大小大约是2.5M

Android Studio中文件的最大大小在默认设置中2.5M,因此超过此限制的文件无法很好地解析。您可以在“AndroidStudio-root/bin/idea.properties”中更改默认设置。

更改此行:

idea.max.intellisense.filesize=2500

到:

idea.max.intellisense.filesize=5000

然后重启Android工作室,红色解除,我又可以愉快地编程了。

对我来说,重要的是说Android Studio在开始时会给学习带来麻烦,但像这里的解决方案清洁项目可以解决这个问题,总是检查打包的名称,不要试图弄乱逻辑,我喜欢这个软件,但有时我试着想如果方式是正确的,也我喜欢Linux但对我来说,Android Studio要重写所有软件,也许这不会发生。不管怎样,祝你好运!!!!

“我有同样的问题,它通过以下方式解决:

1) Sync Project with gradle files
2) Build -> Clean Project
3) Build -> Rebuild Project
4) File -> Invalidate caches


//imp step
5) Check your xml files properly.`

您的代码只是乱码。答案很简单。

只需转到构建-->清洁项目

这应该会起作用。

请检查您的Android Studio版本。

我目前正在使用Android Studio 3.0.1.

只需从根包中导入R符号

import rootpackage.R;

没有重建,同步或其他事情…

在非基础功能的即时应用活动中,您可以调用R.id.fromFeatureOneR.is.fromFeatureTwo。所以来自不同的资源被称为单一资源来源的项目。

两者都将突出显示为可接受,你甚至可以跳转到源代码。但是构建将导致错误:“找不到符号R.id”,这很难找到原因,因为没有突出显示任何内容。

解决方案是调用com.example.feature.one.R.is.fromFeatureOnecom.example.feature.two.R.is.fromFeatureTwo

还在Google发布了bug:https://issuetracker.google.com/u/0/issues/77537714

我看到这个问题可能会导致很多事情。在我的例子中,我在其中一个活动*. xml文件中有一些text View。我在编辑器中放入文本(稍后通过代码更改),如下所示:"NAME: <here will be name>"。显然,“<”和“>”字符破坏了从各个地方在我的项目中导入R。我更改了它并开始工作。我只是忘记了我不能在*. xml文件中使用这些字符,因为它们构建了它的结构。值得记住这一点。

Build->清理项目或重建项目 或 文件->无效缓存/重新启动…->无效并重新启动

我很难自己解决这个问题。

  • 确保您的layout.xml文件中没有错误。
  • 转到构建>清洁项目

它为我工作,希望它也为你工作。

此问题是由于“res”或“Drawable”文件夹中的文件命名引起的。您不能使用任何大写字母来命名资源文件。因此,请检查是否有此类文件并用小写字母重命名。

你也可以试试这个:转到: 文件>使缓存无效/重启

这些选择对我有用。

第一个解决方案

Rebuild your gradle or invalidate/restart your system.

第二种解决方案

delete .gradle and .idea folder from your android project. So you can solve "R" problem

并删除红线错误发生没有任何理由你得到。

尝试确保完整的包名在第一行。假设您有一个名为LoginActivity.java的文件和名为com.domainname.project.的包

LoginActivity.java的第一行应该是

package com.domainname.project;

这相当于在dot.net.中指定“命名空间”还要确保包与包含*. java文件的包匹配。

注意:只有当您的项目非常大时,这可能会帮助您

太长别读-生成的R文件超过2.56 MB,Android Studio没有对其进行索引,您可以按照此处的解决方案进行操作:

文件大小超过配置限制(2560000),代码洞察功能不可用

也面临着类似的问题。但这里的答案似乎都没有奏效。

R文件大于2.56 MB,打开生成的R文件时,我收到一条消息说“代码见解可能不可用”

更改idea.properties中的默认值以允许更大的文件成功了。

为手机上的格式化道歉。

我遇到一个错误'Unable to resolve symbol R' R以红色出现在java文件中。我已经解决了。

  1. 不要用大写字母保存任何图像 就像ABC.png. 首先删除图像或重命名它。
  2. 清洁项目
  3. 重建项目
     The above answers are also the ways to fix the error but if does not work for anyone  then i have an option...

只需关闭项目并重新启动它,这样它就会加载引用… 点击屏幕截图

在此处输入图片描述 输入图片描述

我也遇到了这个问题,我用这种方式解决了它。 首先转到Gradle并单击清理。 点击构建

确保不要从Android工作室清洁

对我来说,问题是我升级到一个似乎有一些错误的Gradle版本。我更新到3.4.0-alpha02,发现这是“无法解决符号R”错误的罪魁祸首。我恢复到3.3.0-alpha10(即classpath 'com.android.tools.build:gradle:3.3.0-alpha10'),它解决了这个问题。

这显然不是一个持久的解决方案,因为我迟早需要升级,但截至2018年11月3日,3.4.0-alpha02是最新版本,它阻碍了我的开发,因为它不允许我通过单击R参考来跳过IDE。

我也遇到了同样的问题。我尝试了上面提到的大部分内容,即Gradle同步、验证缓存和重新启动、清理和重建项目……重新启动Android Studio,仍然遇到同样的问题……

我这里的问题,我假设其他人可能有同样的问题。我在新创建的布局文件的名称上有空格…而不是file_example.xml我的是文件_example.xml**(注意文件和_之间的空格)**当你试图找到这个布局文件的引用时,你会遇到一个错误。

我建议您查看刚刚创建的最新布局文件,稍微重构名称,然后在活动/片段中更改您的R.layout新文件--> 然后干净重建项目,Project将编译而没有任何错误。至少在我的情况下,这是我问题的解决方案。

考虑以下IDE功能:

  • 将Project与gradle文件同步
  • 建设->清洁项目
  • 构建->重建项目
  • 文件->无效缓存

我的简单解决方案是:

  1. 检查应用程序的build.gradle的依赖项或所有/res目录中的资源文件中没有错误行;其中一些常见错误是使用时属性值没有引用:
    • "@string/…"
    • "@style…"
  2. 确保在重建项目时没有收到类型为android资源链接失败的错误。
  3. 打开包含错误行Cannot resolve symbol 'R'的文件
  4. 滚动到带有上述错误行的类的最后一行
  5. 点击类的关闭键}右边的位置

这样,IDE警报对话框似乎执行了R类的导入。

GL

在我的情况下,我正在尝试cleanrebuild项目。该问题未修复,因为布局文件中存在错误。为了重新创建,我在应用命名空间中的属性上添加了错字。

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/add_user"
android:icon="@android:drawable/ic_menu_add"
android:title="Add User"
app:showAsActioin="always"
/>
</menu>

Android Studio没有检查app命名空间的属性,似乎文件没有错误。现在在构建项目时,它说Cannot resolve symbol 'R'。错误显示在构建日志中。

无法解析符号'R'-Android Studio

修复错字修复它,在构建日志上的安卓问题部分观看。

如果您在. xml文件上有任何错误,无论您做什么,都无法修复该问题。我建议

-首先,检查您的XML文件以查找任何错误并

-第二次查找事件日志Android工作室捕获了错误,它会给你哪个文件以及错误在哪里。

我就是这样解决我的R问题的

我发现在大型项目中,自动生成的R.java大于2.55MB(Intellij的默认限制),这会导致文件生成但未解析。要解决它,只需增加该限制:

  1. 在Android Studio帮助->编辑自定义属性…

在此处输入图片描述

  1. 接受并添加: idea.max.intellisense.filesize=3000 (3000或任何大于R文件大小的值)

在此处输入图片描述

  1. 最后,重新启动您的Android Studio!

在我的情况下,原因是res文件夹中的一些图像名称包含大写字母。

用小写字母重新命名然后重建

您可以delete您的layout files之一(无论哪一个),之后您需要build project。项目将构建,之后您需要通过CTRL+Z返回布局文件。在我的情况下,如果我试图在删除layout file之前构建我的项目,它对我没有帮助。但这种方式是可以的。

大多数时候,这个问题是由xml文件引起的,看看xml文件,寻找任何错误。

在我的例子中,导入应用程序域名后跟“. R”解决了这个问题。示例:

import com.example.myapp.R;

清理、重建和“缓存删除”对我没有帮助,更新Android Studio修复了这个问题。

我使用的是gradle 3.3.0。它是罪魁祸首。从我的生命中浪费了6.50个小时。Gradle 3.2.1消除了错误。

classpath 'com.android.tools.build:gradle:3.2.1'

更改gradle版本后问题解决。详细历史记录可以找到这里

在我的情况下,它是通过将Android Studio从3.1更新到3.3来解决的

要更新您的Android Studio:文件->设置->系统设置->更新,然后单击现在检查。

在此处输入图片描述

我遇到了同样的问题: Android Studio 3.2 该项目编译并运行良好,但我在屏幕上收到“无法解析符号”R”警告

没有帮助:

  • 建设>清洁项目
  • 构建->重建项目
  • 文件->无效缓存/重新启动

帮助:

要么

在build.gradle

dependencies {
classpath 'com.android.tools.build:gradle:3.3.0'
...
}

替换为

   dependencies {
classpath 'com.android.tools.build:gradle:3.2.1'
...
}

将Android Studio更新为3.3

在我做了“Build->Clean project”和“Sync project with gradle”之后。他们都没有解决。我从3.3.0=>3.2.1(恢复为项目初始化状态)开始构建gradle版本,它解决了我的问题。

最近,当我更新项目的大部分库时,我遇到了这种情况。没有找到R,但我可以很好地构建和运行项目。它没有崩溃。IDE到处都显示红色。

我试过了

  • 检查损坏/不正确的XML和图像,没有发现
  • 检查无效的资源文件名(例如大写),未找到
  • 降级一些库,因为也许是资源冲突,未解决
  • 降低了compileSdkVersiontargetSdkVersion,因为在过去,我遇到了资源问题。然而,在这个项目中,情况并非如此。
  • 干净,没有帮助
  • 重建计划,没有帮助
  • 多次使缓存无效/重新启动,没有帮助
  • idea.max.intellisense.filesize调整为非常高的值,没有帮助
  • 运行了一个Lint,没有发现错误

最后,我发现将我的Gradle构建工具降级(从3.3.1到3.2.1)解决了这个问题。这是我必须做的唯一更改。其余的,更新了。现在,我所有的库都更新了,没有问题。

buildscript {
repositories {
google()
jcenter()
}
dependencies {
//classpath 'com.android.tools.build:gradle:3.3.1'
classpath 'com.android.tools.build:gradle:3.2.1'
classpath 'com.google.gms:google-services:4.2.0'


// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}

修复“无法解析符号r”错误。 试试这些方法

  1. 构建->清洁项目。

  2. 构建->构建项目。

  3. 构建->制作项目。
  4. 工具栏中左起第三个图标->将项目与gradle文件同步。
  5. 文件->使缓存无效并重新启动。
  6. 确保您在应用程序级gradle文件中使用兼容的gradle版本。

例如:"classpath'com.android.tools.build: gradle: X. X. X'"。

希望这些解决方案可以帮助到你。

感谢阅读。

  1. 类型1:关闭项目并删除项目中的. gradle文件 然后重新构建项目
  2. 类型2:如果类型1不起作用,那么就收回它 project ect9Zip文件),然后删除该项目。然后提取 压缩项目并导入提取的项目,它将工作 完美,因为它为我工作。

简单地在您的xml文件中定义一个应用程序命名空间可能会导致这种情况。这是一个完全无害的行,只选择了一个符号(在许多符号中)使其无法解析。只需删除整行,在下面的图片中灰色,使我的代码能够引用未解析的符号。即使我将该行添加回来,它也决定构建没有问题。去图。

在此处输入图片描述

请参阅下面的图像转到文件->项目设置->设置所有设置,如图像和同步,它将把所有最新的设置放在你的项目中。此图像包含项目设置。 如果你的项目imaported成功,那么你必须这样做。因为它将导入所有更新设置和gradle。

您应该做两件事,首先清理项目(在构建菜单中)-它删除了可能是罪魁祸首的构建目录:

构建->清洁项目

接下来,将项目与Gradle文件同步(在文件下):

文件->同步项目与Gradle文件

这是Windows 10上Android Studio 3.6.1中项目的位置。

如果所有其他方法都失败了,则通常会使缓存无效并重新启动(在文件下)。在我看来,这会关闭整个程序并花费最多的时间。

文件->使缓存无效

澄清一下,我在Windows 10上运行它,但它也应该在MacOS和Linux上运行。

在我的情况下,当我试图从另一个包调用R时显示此错误。导入R包解决了我的问题。

import com.mtdaps.yourapp.R;

其中一个原因可能是,您最近修改了布局/资源文件,并且资源(字符串/颜色/可绘制等)在您的代码中不可用,但您在设计中使用了引用。

尝试查找此类引用,删除/注释它们并尝试重建。

这不是错误。 如果你有错误 关闭项目。 然后打开项目 在这之后,你可以得到一个错误

Cannot resolve symbol 'default_web_client_id'

它可以通过在Stings值中插入Web客户端ID来解决

我已经完成了其他答案中提到的所有步骤,但它仍然没有得到解决。我正在使用Android Studio chipmunk,最后我能够通过删除来解决这个问题

maven { url "https://jitpack.io" }

从setting.gradle我回答这个问题我认为这样做可能会帮助别人