在我尝试在Android Studio中创建的每个项目中,R的所有用法都标记为红色,并显示错误消息“无法解析符号R”,但编译成功并运行应用程序 . 这真的很烦人,因为它会阻止自动完成并在我的代码中显示巨大的红色波浪线 .
我正在运行Android Studio 1.7.0并使用默认设置创建项目 . 附上截图:
这是我的 build.gradle
:
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.4'
}
}
apply plugin: 'android'
dependencies {
compile files('libs/android-support-v4.jar')
}
android {
compileSdkVersion 17
buildToolsVersion "17.0.0"
defaultConfig {
minSdkVersion 7
targetSdkVersion 16
}
}
这就是项目结构的样子:
知道如何解决这个问题吗?
30 回答
解决方案很简单:
转到
File > Project Structure > app
并选择Flavours
选项卡,在Min Sdk Version
的下拉列表中选择API 21: Android 5.0 (Lollipop)
.您需要导入项目R文件
在我的案例中,清理项目有所帮助
去
如果您收到此错误,请清除您的项目 .
去构建Android工作室的顶部
选择清洁项目选项
这背后的原因是通过清除您之前的系统上的android studio项目文件夹中存在的
.apk
文件被删除 .只需点击Android Studio中的 Build - > Rebuild Project 选项即可 .
我发现这个问题是因为我的XML文件出错了 . 修复XML错误后,执行clean / build,修复了问题 .
单击
Build -> Rebuild Project
,然后单击Tools -> Android -> Sync Project with Gradle Files
.确保
AndroidManifest.xml
包名称正确无误 . 当我的R.whatever
标记为红色时,这解决了我的问题!我还建议检查所有
gradle
文件,以确保这些包名称正确 . 这不应该使一切都变红,但它会阻止你的gradle
文件正确同步 .与android studio有同样的问题,我发现build / generated / source / r只包含release文件夹而不是debug . 因此,由于某种原因,调试版本没有生成可用的R类 .
我通过打开项目iml文件解决了它并修复了这一行
至
使用gradle重新生成,使用R注释掉行,运行debug以生成R,使用R生成未注释的行并再次运行调试,修复 .
选择“文件”>“项目结构”菜单选项 .
在消息框上按“确定”(项目结构更改不更新build.gradle) .
在"Project Settings"侧窗格中选择"Modules" .
对于每个模块(项目),检查"Excluded Folders"部分是否包含"build"文件夹 . 如果是,请按"build"文件夹旁边的'x'按钮 .
按OK
您现在应该看到“MyAppProject / MyApp / build / source”文件夹 . 这应该包含“r”文件夹(生成R.java文件的位置) . 在这里,你应该看到蓝色的“debug”,“release”(如果你的build.gradle中有一个projectFlavour,它们将在“”文件夹下) . 在该调试/发布文件夹中应该是您的应用程序包名称,然后是包含所有资源ID的R.java文件 .
出于某些原因,Android studio对编辑器和编译器使用不同的配置 . 如果它适用于编译器,那么它很好 . 如果它对编辑器不起作用 . (它看到未解决的文件) .
您需要将一些目录添加到项目源中 . 例如,所有资源都应标记为“源” .
文件 - >项目结构
选择"Modules",然后选择您的项目 . 并选择
sources
选项卡 . 在右侧找到您的资源目录,然后单击蓝色"source"按钮 . 关闭所有它应该工作 .此外,你必须确保这一点
build/source/r/debug
也是一个来源 . 在我的所有build/source/*/debug
标记为来源 .主模块.iml
项目iml
黑魔法
不确定这个,但我听到它工作,而我改变任何东西 . 在评论所有需要
R
的行后,尝试编译并保存项目 . 然后当一切都不是红色 . 尝试添加它们 . 奇怪的是,你的构建/源代码没有生成 .此问题还建议检查“编译器使用外部构建”
Android Studio don't generate R.java for my import project
旁注
还要确保在你的java代码中没有 .
import android.r;
从你所展示的,一切似乎都很好 . 奇怪的是,构建/源代码在发布模式下并不会创建这些目录 .这是我的临时解决方案,直到找到更好的解决方案:
使用Everything,找到R.java的创建位置 . 就我而言,它是
C:\Program Files (x86)\Android\android-studio\system\compiler\<project-name>.cb969c52\.generated\aapt\<module-name>.6badd9a4\production\com\<project-name>\<module-name>
在项目视图中,单击模块并按F4 . 忽略警告 .
单击“添加内容根”并选择上述文件夹 . 确保它标记为蓝色(作为来源) .
在我这样做之后,突然所有的警告都消失了 . 问题是,如果您与其他人协作,每台计算机上的文件夹名称都不同,因此在同步时要小心 .
重建项目 .
如果(1)不起作用,请重新启动Android Studio / Eclipse .
如果两者都不起作用,请检查所有xml文件 . 当您的xml文件不正确时,会发生此错误 .
只需转到Android顶级菜单列表 . 单击 Build 菜单,在Build下单击 Rebuild Project .
有时,这些构建错误将无处不在 . 如果您遇到这种情况,请尝试以下方法:
Recheck the validity of the XML in your resource files: 如果没有生成您的R.java文件在最后一次构建中,无论您在何处引用资源,都会在项目中看到错误 . 这可能是由一个XML文件中的拼写错误引起的 . 布局XML并不总是经过验证,因此这些文件中的拼写错误可能无法引起您的注意 . 查找拼写错误并保存文件应该会导致R.java重新生成 .
Clean your project!
Select Build → Clean Project
这将从头开始重建项目,这可能会导致无错误的构建 .Sync your project with Gradle!
Select Tools → Android → Sync Project with Gradle Files
Android Studio将使用正确的项目设置从头开始重建项目,这有助于在更改Gradle配置后解决问题 .Run Android Lint! Lint可能会为您提供有关问题的良好信息 . 如果上述方法不起作用,那么您很可能会发现问题所在 . 要运行Lint,
select Analyze → Inspect Code → select Whole project → OK
仔细分析Lint建议;从错误开始,然后是警告 .祝好运 .
这对我有用:
关闭并重新打开项目
如果Gradle第一次无法同步,请按“与Gradle文件同步项目”(位于顶层菜单中的AVD管理器图标旁边)重复1-2 . (我的第二次工作) .
使用Android Studio 1.2.2
这个错误发生在我身上,因为有一个 invalid input in my activity_main.xml file.
当你尝试 build or clean your project 时,你会看到 error messages .
我通过 reading those error messages , correct what is wrong in my xml file. 然后 rebuild project 解决了我的问题 .
我通过以下方式解决了
几天前我遇到了这个bug,我试着四处寻找,直到我决定重新安装Android Studio . 它对我有用 .
从示例创建项目时,虽然没有导入现有项目是好的(防止与gradle,.idea,.iml,build,jar和apks的冲突,即所有不必要的构建生成的文件),在创建新项目后,复制并粘贴所有相关资源,我建议:
从项目中的包{AndroidManifest声明和java类中的所有导入}检查包和导入,所有资源(可绘制,mip-map,布局和菜单以及build.gradle(与最新sdk一起使用的build.gradle示例)可以根据要求提供))看看它们是否在那里,如果声明的字符串和ID实际存在并且已被使用,之后您唯一的错误应该是问题:
Bulid->清洁项目
工具 - > Android->使用Gradle文件同步项目
文件 - >使缓存无效并重新启动
在最坏的情况下,重启机器会有所帮助 .
以上应该有效 . 如有必要,请随意提问,即发表评论 .
这主要是因为xml文件中的错误,检查你最新的xml更改并重建它,同样的问题 .
我在清单的包声明中有一个复制/粘贴重用错误
主活动名称具有正确的路径,因此清单没有任何已检查的错误 .
解决此问题后,虽然构建成功,但源文件仍显示错误 . 我刚刚运行应用程序,然后清除了源错误指示器 .
通过手动清理文件夹.idea / libraries并在“使用Gradle文件同步项目”后点击它解决了这个问题 . 显然,此同步不会删除元素,但保留旧元素并添加当前元素 . 可能是报告的错误:)
最近我将我的项目导入Android studio, a part of R标记为红色,错误为meesage "cannot resolve symbol R",但编译成功,应用程序运行 .
发展经验:
IDE:Android工作室3.1.2
系统:Mac Os
解决方案:
step1:
找到Android studio的配置文件
我自己的路:
step2:
改变2500:
到5000或更多:
我遇到了同样的错误,结果证明清单文件有一些错误 . 修复后,再次单击Make Project,它工作正常 . Android工作室有时不提供非常有用的错误消息 .
我不时会被这个问题所困扰,还有另外一件事要做:将您的compileSdk和buildSdk版本与最新版本相匹配 .
我已经将我的compileSdkVersion从21更改回19,因为Android Studio(1.1 canary channel)调试器未正确跟踪到预构建的库 . 我发现它似乎是基于buildToolsVersion(19.1.0)的跟踪,我通过单击堆栈跟踪中的错误(然后选择19而不是21)来验证 . 虽然我直接在build.gradle文件中更改了它,但是这里有一个图形演练:https://www.blogger.com/comment.g?blogID=4722727826918942842&postID=3875998513888772255并且我将总结:
Android Studio IDE,选择文件|项目结构 .
选择您的模块,例如"app"
在“编译SDK”字段中,选择最新版本
还要在Build Tools中选择最新版本
确认,项目应自动正确同步 .
我从中得到的教训是,它们应该是相同的 .
对我来说,在将我的一个原始资源的名称从
extra
更改为extra.jet
后,我遇到了这个问题,然后所有的R
变为红色并且无法构建 . 我尝试了所有上述解决方案并没有任何效果,然后我尝试用原始名称extra
制作它的另一个副本并从android studio中删除它然后R
s返回到正常并且构建成功 .就我而言,我遵循了Stackoverflow上可以找到的所有答案,但似乎没有一个能解决这个问题 . 所有答案都会指出可能的xml文件损坏或与Gradle名称冲突 . 一些答案声称有必要清理项目或使用Gradle文件同步项目 . 这些解决方案都不能解决问题 . 此外,一旦我关注如何构建Hello World应用程序的教程,我只是在没有任何编码的情况下跟随Android Studio向导窗口,那么怀疑这是一个类似的错误就没有任何意义 .
TLDR
问题原来是Build Tools版本 . 我被设置为 23.0.0 rc1 ,所以我将其更改为 22.0.1 . 我想这是因为我正在使用Android的最新版本 .
要更改此值,您可以在左侧窗口中打开项目浏览器>右键单击“应用程序>打开模块设置”,然后在“属性选项卡”中查找它
我在使用培训网站的练习文件时遇到了同样的问题,并尝试通过卸载android studio并删除所有相关目录并重新安装来解决问题,但这并没有产生任何结果 . 但是,我注意到我正在查看的教程将其练习文件存储在DESKTOP上,而我的DOWNLOADS目录中的文件夹中,所以我只是将所有练习文件复制到我的桌面;这使得我的练习文件夹结构与教程创建者的结构相同,这就是诀窍 .
在大多数情况下,您的资源存在一些问题,即布局,样式等 . 因此,请尝试在资源中查找并修复问题,然后清理项目 .