我正在尝试使用IntelliJ IDEA与一位同事发誓的Android应用程序,但是我无法构建他发送给我的任何Android项目,因为无论何时我尝试构建我都会收到错误说package R does not exist
。
我一直在尝试我能想到的一切。示例和其他需要注意的事项是:
确保我的local.properties
文件版本指向Android SDKs文件夹的根目录。
摆弄项目结构对话框中的各种设置(我不会全部列出)。
我正在处理的项目有两个库项目,也使用R
类,它们工作正常。
IDE中的intellisense识别R
类并提出我期望的内容。
非常感谢任何帮助。我觉得我错过了一些基本的东西。
答案 0 :(得分:34)
我是IntelliJ的品牌新手,所以如果这对您不起作用,我深表歉意。我遇到了同样的问题,解决方案是在项目中添加Android
Facet
。
(我在Mac上,所以这里的指示可能略有偏差,有可能找到这个窗口的更好方法,如果有,请告诉我!)
Open Module Settings
(似乎F4也可以)Facets
Android
Facet
,以及VOILA! R
,这可能是一个巨大的痛苦...所以希望有人可以通过简单的方式自动导入 希望这有助于某人!
答案 1 :(得分:25)
此处列出的另一种可能的解决方案是检查AndroidManifest.xml中的软件包名称是否与实际软件包的名称相匹配:
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.yourpackagename" >
我的包构建正常,直到我重构了包名,除了清单文件中的包名(见上文)之外,所有重构都被重构,导致错误“包R不存在”。
答案 2 :(得分:13)
如果您在需要“重建”之前使用已构建的包遇到此问题。 构建 - &gt;重建项目。删除gen不会这样做,因为IDEA将实际生成的R保存在其他地方。
答案 3 :(得分:5)
就我而言,我在另一个项目中添加了一些类,我必须从我的实际项目中将导入添加到R包中:
import com.youcompanyname.yourprojectname.R;
答案 4 :(得分:4)
我开始玩IntelliJ,因为我遇到了新Android Studio的问题,想尝试一些更稳定的东西(我之前从未真正使用过)。我最终得到了可怕的“包R不存在”错误。根据我的经验,这通常是在XML文件中搞砸了。对我来说,问题实际上是我为ActionBarSherlock创建的Android库模块的AndroidManifest.xml文件。无论出于何种原因,当它创建AndroidManifest.xml文件时,它并不打算使用ABS附带的AndroidManifest.xml文件,它将以下内容放在:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.ActionBarSherlockLibrary_4_3_1"
android:versionCode="1"
android:versionName="1.0">
<application
android:label="@string/app_name"
android:icon="@drawable/ic_launcher">
<activity
android:name="ACTIVITY_ENTRY_NAME"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
</application>
</manifest>
当我创建此模块时,我选择了文件&gt;新模块...... 然后我在Android部分下选择了库模块,对于内容根我浏览了ABS文件的位置(其他字段自动填写正确,我没有更改它们)。 然后我点击完成,它提示我是否要保留本地文件或project.properties的内存文件。 我选择保留本地文件,之后没有提示我其他人。
我不知道为什么它搞砸了AndroidManifest.xml文件(也许我上面做的是错误的...... ???),但为了修复它我只是复制了我下载的原始AndroidManifest.xml库并替换了乱糟糟的AndroidManifest.xml文件。之后我做了Build&gt;重建项目并解决了“包R不存在”错误。
另一个想法是,@ xbakesx提到了Facets设置,对于您用作库的任何模块,您应该确保在该模块的Facets下选中“Library module”。我最初在试图弄清楚如何在IntelliJ / Android Studio中配置库时遇到了一些问题(我实际上只使用过Eclipse)。
答案 5 :(得分:4)
我刚刚重启IntelliJ,它神奇地解决了。 先试试吧。
答案 6 :(得分:3)
有同样的问题 - 问题是Manifest文件没有正确的默认Activity设置。
答案 7 :(得分:3)
对于那些已经达到这个目标的绝望的人们:我感受到了你的痛苦。我花了一个小时做了什么,除了尝试上面的所有这些以及其他来源的建议。我已经检查了所有xml资源两次,清理了缓存,重建了十几次,甚至重新启动了整台机器。这实际上对我有用:
在“构建变体”(左下角)下,我为目标选择了一个不同的构建变体(在我的情况下是发布而不是调试)缺少R问题。解决了它。
答案 8 :(得分:3)
我重构了包名,并且intellij没有在清单中更新它。
因此,如果您重构了packagename,那么转到清单并更新xml文件根目录中的属性“package”并保存并重建它。如果发生任何错误,那么导入中的包名可能是错误的(至少这是我的情况)所以只需修复它们
希望这有助于任何人
答案 9 :(得分:2)
在我的情况下,我不得不删除intellij编译器缓存。在我的Windows机器上它是这样的:
%USERPROFILE%\.IdeaIC12\system\compile-server\<my project>
答案 10 :(得分:1)
尝试创建新项目,然后选择“从现有来源创建项目”
答案 11 :(得分:1)
加上我的0.02美元以防其他人遇到我的问题。在我的情况下,我使用IntelliJ生成了“Hello world”应用程序,忘了从“com.example”更改包名。然后我使用IntelliJ重构包名。这导致错误开始发生。
所以我对“com.example”进行了全局搜索,并在其他人提到的AndroidManifest文件中找到了它。但是,更改此问题并不能解决问题。 “com.example”也可以在“.idea”目录下的“workspace.xml”中找到。我改变了所有的事件,进行了重建,然后又重新开始工作了!
这似乎是IntelliJ中的一个错误。
答案 12 :(得分:1)
在Android Studio中,我的问题是当我复制粘贴一个类作为模板来创建另一个类似的类时,它要求自动导入一堆东西,其中大部分都不会与新类相关,所以我说取消。有了它它遗漏了import com.your.packagename.R;
所以R实际上没有导入到我试图使用它的文件中。