软件包R不存在
我得到了可怕的软件包R
不存在,这是杀了我。 代码很好,我在市场上运行代码的应用程序。
现在它影响简单的webview
应用程序。 o.0
R.string.app_name
是错误的我的main.xml
和string.xml
是好的。 我很困惑。
我重新开放了一个旧版本来"borrow"
一些代码,它充斥着R. errors.
我做了一个干净的没有任何改变,除了importR.android
被添加在顶部。
我甚至加载到Netbeans,我得到同样的东西。 清洁不工作。 我可以自己写R.java
文件吗?
这是什么东西? 不是R
应该对应于R.java
对于遇到这个问题的人来说,我通过重命名命名空间文件夹来进行重构。 我忘了也编辑AndroidManifest,这就是为什么我得到这个错误。
确保你也检查了这一点。
只是为了使这个简单:
import your.app.package.R;
当然,用您的应用程序包replaceyour.app.package
。
在所有使用R资源引用的类中,使用.R
删除任何其他import
,即import android.R;
TL; DR ,如果你得到错误“包R不存在”,可能的原因是
- XML资源文件中出现一些错误
– >修复XML错误 - 当前包与
R
包不同(请参阅AndroidManifest.xml中的package
属性)
– > importR
类,例如import com.example.android.R;
– >或者在源代码中使用适当的包,例如package com.example.android;
– >或者将AndroidManifest.xml中的package属性更改为<manifest xmlns:android="..." package="com.example.android" ...>
,如果合适的话 - 使用的
R
ID来自系统资源
– >不要导入android.R
,但用android.
前缀违规idandroid.
例如android.R.layout.simple_list_item_2
你可以导入android.R
而不是前缀的ID,但是你不能再导入应用程序R
类,并且必须在应用程序的id前面,例如com.example.android.R.id.main_menu
。
R
类是从应用程序资源自动生成的。 它包含这些资源的id
,并包含在相应的AndroidManifest.xml
文件的<manifest>
标记中所指定的包中。
如果资源XML文件中没有错误, R.java
源将在gen/
下面的包子目录中生成并编译。
在android
包中有另一个R
类。 这个android.R
类包含一些嵌套的类,它们又包含id
和系统资源的其他值。
要在Java中使用类,必须用整个包命名类,例如
java.util.List<Object> list = new java.util.ArrayList<Object>();
或导入类,然后使用它没有包
import java.util.List; import java.util.ArrayList; List<Object> list = new ArrayList<Object>();
如果当前类和使用的类都在同一个包中,那么也可以使用一个没有命名包的类
package com.example.android; public class A { /* ... */ }
package com.example.android; public class B { public void useA() { A a = new A(); } }
永远不要试图自己写R类!
你有没有在你的文件中导入正确的R类?
干
import android.R;
代替
import com.example.R;
似乎是很多人的问题。 清理完成后,我的class级有时会input错误的。
R.java是一个自动生成的文件,如果在xml文件中有错误,它通常不会被编译。
否您不能编写自己的R.java文件,它必须由资源编译器生成。
检查所有的XML文件中的错误。
如果您在android studio中开发并重构了包名,那么您应该在android清单和应用程序gradle文件中更改包名称。
applicationId "change here your package name"
并在清单文件中
package="change here your package name"
R类是从您的XML文件(UI布局,国际化string等)自动生成的Java代码。如果以前的代码工作(看起来是这样),您需要告诉您的IDE以某种方式重新生成这些文件:
- 在IntelliJ中,select工具> Android>生成<project>的源代码
- (如果你知道另一个IDE的方式,请随时编辑这个答案!)
我想它曾经工作,但现在不..
如果您更改MANIFEST文件中的PACKAGE名称,可能会发生这种情况
<manifest package="com.example.android...."
如果你想改变包名称
- 在清单文件中手动更改软件包名称。
- 点击你的R.java类,然后按F6。 它将允许您将该类移动到其他包,并且对该类的所有引用都将被更新。
删除导入android.R; 从所有的文件..一旦清理项目,并build立项目….它会产生
在我的情况下,我意识到我在项目中创build了多个包。 在Android清单中,我发现提供程序名称不正确地保存了MyContentProvider的值而不是.provider.MyContentProvider。 我的主要包(用户界面)是co.companyname.database.provider而不是co.companyname.database。
然后,在受影响的类的导入语句中,我只需右键单击,并要求Android Studio(0.8.6)优化我的导入语句。 我还注意到,如果您在IDE右上angular的ASsearch栏中search.R,则可以find一个自动生成的R.java文件,它是您的软件包的一部分。 在这一点上,你不需要改变任何东西。 Studio更正Android Manifest文件并重build后应该修复项目。
另一个项目是在一个类中,我正在使用toString()。length()来计算一个string,但将它们交换为TextUtils.IsEmpty(stringVal); 我想不出任何其他解决问题的方法。
希望这有助于某人。
NB – 所有这一切都与AS 0.8.6
PS
R.java是自动生成的,所以读取头文件:/ * AUTO-GENERATED FILE。 不要修改。 * *这个类是由* aapt工具从它find的资源数据自动生成的。 它*不应该被手动修改。 * /
当我遇到这种情况时,我创build了一个新项目,并将旧项目中的文件复制到新项目中。
- 开始一个新的项目
- 将旧文件添加到新项目中(复制并右键单击Layout,drawables,com.packagename …)以粘贴我的旧项目文件
但是,我仍然有同样的问题: R does not exist
。 然后我意识到我已经从记事本复制并粘贴了Manifest到Android Studio清单,并且我没有更改清单文件中的包名称。
因此,一旦我将清单中的包名称更改为新的项目名称,我创build的新项目工作正常。
你将什么文件导入到获取R错误的文件中?
我对R文件的理解是它们是自动生成的Android应用程序中的所有属性的参考列表。 因此,你不能自己改变它。
你使用Eclipse来build立这个项目? 在更新Eclipse之前,较老的项目是否得到这些错误? 什么是引起错误的参考?
检查以确保您没有从另一个应用程序中的其他复制代码导入另一个R文件。
每当我切换电脑,并尝试从通过USB传输的文件导入旧项目,我遇到了这个问题。
我的解决方法是创build一个新的项目,并将文件复制(拖动)到IDE(目前使用Netbeans)和重build。 这是一个恼人的解决scheme,但它解决了这个问题。
如果发生这种情况,最糟糕的情况是您可能需要备份文件,删除项目,然后拖动文件并重新编译。 希望它不会来,但这将是你的核select。
如果您在Android Studio中遇到此错误:
检查Gradle模块文件 – > defaultConfig – > applicationId设置。
检查AndroidManifest.xml – > manifest包标签。
检查所有src java文件中的包声明。
同步,清理,然后用Gradle重build。
永远不要build立你自己的R文件。 R是从你的源代码文件自动生成的,并且可以build立设置。
我有:“错误:包R不存在”,并假定javac没有访问R.java。
所以我将%PROJ_LOC%\ gen附加到sourcepath,并且工作正常! SOURCEPATH =%PROJ_LOC%\ SRC;%PROJ_LOC%\根
我没有使用Android Studio或Ant(或XML)。
你可以试试
Android Studio顶部菜单>文件>无效的caching/重新启动…
点击无效caching/重启button重新启动您的项目
如果某些片段类R类没有正确parsing,请再次parsingR.xxxx.xxx
然后重build你的项目
希望能帮助到你
如果在解决合并冲突后出现这个错误,简单的Build – > Clean项目可能会有所帮助。
刚刚摆脱了我的项目中的错误。 我已经导入了一个示例项目,我已经更改了包文件夹,但是我没有更新其中一个java文件中的包。
最可能的原因是这个错误“软件包R不存在”是Java或清单文件中的软件包名称不正确。 确保它是正确的,并同步,然后做一个干净的生成。
有时,只要将项目重新导入到Android Studio中就可以解决问题。
我解决了我的问题:
软件包R不存在
。
转到AndroidManifest.xml
文件,并从19改变minSDKVersion="17"
- Android:以编程方式检测设备是否具有硬件菜单button
- 错误:MapFragment无法转换为android.support.v4.app.Fragment
- 如何在Android中的ListView中显示图像列表?
- 不支持的方法:运行项目时AndroidProject.getPluginGeneration()
- OnTouchListener的Ontouch事件在android中被调用两次
- 在没有5秒延迟的情况下按下HOMEbutton之后从服务开始活动
- 如何使用一个ImageButton Ontouch和Onclick?
- Android:我如何将地图视图的缩放级别设置为我当前位置周围1公里的半径?
- 在Android中左右alignmentbutton布局