我试图使用一些在线教程来解决多种布局问题。事情就是我的程序只要只有一个XML文件就可以正确构建和编译。当我添加多个XML文件时,我收到的错误是“{_ 1}}
行'无法解析activity_main或不是字段'事实上,我之前在setContentView(R.layout.activity_main);
中使用的每个项目现在都报告错误。我不知道出了什么问题。任何人都可以建议需要做什么吗?
编辑1:我尝试清理并重建项目,但这没有帮助。另外,我正在导入正确的R.*
文件,如 mypackage .R.java
根据@ RubberDuck的评论,我一旦删除文件,就会在构建项目后生成R.java文件。但是,当我创建新的XML文件并在其中添加元素时,构建项目时,R.java会被删除。
答案 0 :(得分:47)
我遇到了同样的问题,通过将R
替换为com.example.appname.R
来解决问题,显然将您的包引用放在那里。或者只需将此行添加到您的文件中:
import com.your.package.R
或者甚至更好,如果存在,请尝试从代码中删除此行:
import android.support.compat.R
答案 1 :(得分:21)
我尝试了什么:
有效方法:
1。使缓存无效并重新启动。
答案 2 :(得分:18)
检查你是否意外导入了android.R。
答案 3 :(得分:10)
如果您的XML包含错误,您生成的文件可能无法构建,请尝试删除大部分内容并确保不重复ID和文件名,并且不使用大写和空格。如果它有效,你可以开始添加东西。
答案 4 :(得分:4)
我的错误通过导入行而消除
import com.example.myapplication.R;
您的导入行可能会有所不同,具体取决于您的项目名称,其中我的项目名称是 myapplication
答案 5 :(得分:4)
我犯这个错误的愚蠢错误是在我的AndroidManifest.xml
文件中包含了错误的包字符串。我在教程中留下了字符串集,但在设置项目时使用了我自己的字符串。
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="COM.YOU.YOURAPPNAME"
android:versionCode="1"
android:versionName="1.0" >
答案 6 :(得分:3)
你导入了无效的R类, 导入yourpackage.R类 例如 com.example.R
你导入android.R类而不是yourpackages.R
的行为是什么答案 7 :(得分:3)
Ivwd只是删除了行“import android.R;”并致电项目 - &gt;清洁...... 这对我的Win-7 / x64和Eclipse Kepler以及最后一次(02.2014)Android SDK来说已经足够了
答案 8 :(得分:2)
由于资源未正确加载而发生这种情况,并且在任何视图中都可能发生类似的问题,因此下面是一些可用于消除此错误的技术:-
注意:在上述步骤中,最后一步肯定可以解决此问题。
答案 9 :(得分:2)
在2019年,我遇到了同样的问题,我在互联网上搜索后发现了我与所有人共享的以下内容。
在android studio中,字母R代表资源,由于构建过程无法将资源与您的项目同步,因此发生此错误。换句话说,当Android Studio无法正确生成R.java文件时,就会导致此错误。 当您将代码转移到另一个系统或第一次构建android项目时,就会发生此问题。因此,当您创建新的活动或新的类时,您会看到一条错误消息,如“无法解析符号r”,并带有红色下划线。
下面您可以找到可能的方法来解决无法在Android Studio中解析符号r的问题。
将项目Gradle更新为最新版本 始终使用最新版本的Gradle正常运行android studio。
使用Gradle文件同步项目 更新Gradle插件后,您需要将项目与Gradle文件同步。 打开android studio,然后点击文件>使用Gradle文件同步项目选项。
清理并重建项目 最有效的解决方案是最简单的:清理并重建项目。从Android Studio工具栏中选择 Build> Clean Project ,稍等片刻,然后通过选择 Build> Rebuild Project 来构建项目。
使缓存无效/重新启动 如果在移动某些文件和目录后遇到此错误,则可能是 R.layout 错误是由于Android Studio缓存与项目的当前布局不匹配引起的。如果您怀疑是这种情况,请从Android Studio工具栏中选择文件>无效的缓存/重新启动>无效并重新启动。 资源名称的问题也可能导致R.java文件无法正确创建,因此请检查您是否没有多个具有相同名称的资源,并且文件名中均未包含无效字符。 Android Studio仅支持小写的az,0-9,句号和下划线,并且即使您在项目中的任何地方都没有实际使用此资源,单个无效字符也可能在整个项目中引起R.layout错误!>
我的问题及其解决方案: 就我而言,我应用了以上所有方法,但无法解决问题。因此,我开始了一个新项目,并逐个粘贴了我的代码,并通过运行该应用程序验证了我的代码。最终,在我第一次删除colors.xml中的代码并将下面的代码复制并粘贴到colors.xml文件中的某个时刻,出现了错误。
<color name="bg_login">#26ae90</color>
<color name="bg_register">#2e3237</color>
<color name="bg_main">#428bca</color>
<color name="white">#ffffff</color>
<color name="input_login">#222222</color>
<color name="input_login_hint">#999999</color>
<color name="input_register">#888888</color>
<color name="input_register_bg">#3b4148</color>
<color name="input_register_hint">#5e6266</color>
<color name="btn_login">#26ae90</color>
<color name="btn_login_bg">#eceef1</color>
<color name="lbl_name">#333333</color>
<color name="btn_logut_bg">#ff6861</color>
当我撤消更改时,错误再次消失。因此,我在colors.xml中的代码不是上面的代码,而在colors.xml中已经存在的代码,即
<color name="colorPrimary">#008577</color>
<color name="colorPrimaryDark">#00574B</color>
<color name="colorAccent">#D81B60</color>
<color name="bg_login">#26ae90</color>
<color name="bg_register">#2e3237</color>
<color name="bg_main">#428bca</color>
<color name="white">#ffffff</color>
<color name="input_login">#222222</color>
<color name="input_login_hint">#999999</color>
<color name="input_register">#888888</color>
<color name="input_register_bg">#3b4148</color>
<color name="input_register_hint">#5e6266</color>
<color name="btn_login">#26ae90</color>
<color name="btn_login_bg">#eceef1</color>
<color name="lbl_name">#333333</color>
<color name="btn_logut_bg">#ff6861</color>
希望它将对像我这样的编程新手有所帮助。
答案 10 :(得分:2)
goto tools-&gt; android-&gt;使用gradle文件同步项目 然后点击S
答案 11 :(得分:0)
当您更改项目名称时会发生
就我而言,我只是改变
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="xxxx.newName"
答案 12 :(得分:0)
清理项目并与gradle同步(无结果)后,我删除了所有import语句,并使用alt + Enter将它们重新带回。
答案 13 :(得分:0)
首先要做的->从Android Studio工具栏中选择Build> Clean Project,稍等片刻,然后通过选择Build> Rebuild Project来构建项目。
如果问题仍未解决,请执行以下操作->文件>使缓存无效/重新启动>从Android Studio的工具栏中无效并重新启动。
答案 14 :(得分:0)
在我的情况下,我不小心导入了我的库的R.类而不是我的应用模块的R。导入后,它就解决了。
答案 15 :(得分:0)
您的gradle或build需要知道资源的位置。
答案 16 :(得分:0)
发生过一次。不知道原因。
构建和GT; Clean Project为我删除了错误。
答案 17 :(得分:0)
在Android Studio中转到Tools
- &gt; Android
- &gt; Sync project with gradle files
或File
- &gt;最新Android Studio版本中的Sync project with gradle files
。
答案 18 :(得分:0)
我遇到了类似的问题 从res中删除了一些图片后突然发生了。绘制。 我做了两件事。
答案 19 :(得分:0)
只需删除import.android.R;
然后R.layout。(XML LAYOUTNAME)将变为BLUE
我花了我一小时才发现这个错误
答案 20 :(得分:0)
当在values / strings.xml中添加了一个不合适的字符(/ -one slash)时,我得到了这个,当然,重命名有问题的资源很有帮助。 还有一件重要的事情 - 检查设备上的日期和时间。
答案 21 :(得分:0)
我使用maven作为构建工具,在我构建我的项目并在互联网上挖掘很多解决方案之后。通过添加到main_activity.xml
解决了我的问题工具:上下文= “MainActivity”
答案 22 :(得分:0)
或者你可以写
import.R.layout //位于顶部
它肯定会起作用
答案 23 :(得分:0)
答案 24 :(得分:0)
感谢@ RubberDuck的评论和@Emil的回答,我能够弄清楚问题是什么。我的XML文件中大多数元素的ID都完全相同。所以,我重命名了他们每个人。此外,我的XML文件包含大写字母。文件名应该在[a-z0-9_]中,所以我也重命名了我的文件,问题就解决了。
答案 25 :(得分:0)
我有一些建议:
确保除R相关错误外没有任何其他错误。在Eclipse,Android Tools - &gt;中右键单击项目文件夹。修复项目属性。
2.检查以确保您输入了正确的R.有时可以导入默认的Android.R。
3.检查布局XML文件中的错误。
答案 26 :(得分:0)
布局文件可能存在问题,更正布局文件并显示自动生成的类。
答案 27 :(得分:-1)
我删除了导入android.R并添加了 import android.support.v7.appcompat。*;
然而,这必须在导入后完成 通过右键单击项目并导入
来appcompat答案 28 :(得分:-1)
您正在导入无效的R类,请检查导入。