IntelliJ的IDEA – 不能build立任何东西,总是得到“包R不存在”

我正在尝试使用IntelliJ IDEA与一个发誓的同事一起工作的Android应用程序,但我无法构build任何他发送给我的Android项目,因为每当我尝试构build时,我得到一个错误,说package R does not exist

我一直在尝试我能想到的一切。 示例和其他要注意的事项是:

  • 确保我有一个指向我的Android SDKs文件夹根目录的local.properties文件。

  • 摆弄项目结构对话框中的各种设置(我不会全部列出)。

  • 我正在做的项目有两个图书馆项目也使用R类,他们工作正常。

  • IDE中的intellisense认可R类,并提出我期望的东西。

任何帮助将不胜感激。 我觉得我缺less一些基本的东西。

我是IntelliJ全新的,所以我很抱歉,如果这不适合你。 我遇到了同样的问题,解决scheme是将Android Facet添加到您的项目中。

(我在Mac上,所以这里的方向可能会稍微偏离一点,可能有更好的方法来find这个窗口,如果有的话,让我知道!)

  1. 右键单击您的项目,然后进入Open Module Settings (似乎F4也可以)
  2. 在最左边的列中select小Facets
  3. 点击+button
  4. 添加一个Android Facet到你的项目,VOILA!
  5. 您可能需要现在导入您的R ,这可能是一个巨大的痛苦…所以希望有人可以用一个简单的方法来自动导入

希望这可以帮助别人!

这里列出的另一个可能的解决scheme是检查您的AndroidManifest.xml中的包名称是否与您的实际包相匹配:

<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.yourpackagename" >

我的软件包构build良好,直到我重构了软件包名称,除了导致错误“软件包R不存在”的清单文件中的软件包名称(参见上文)之外的所有内容都被重构了。

如果你遇到了这个问题,那么在你需要“重build”之前,已经build立了一个包。 build立 – >重build项目。 删除gen不会这样做,因为IDEA将实际生成的R保存在别的地方。

在我的情况下,我从另一个项目添加了一些类,我不得不从我的实际项目添加到R包的导入:

 import com.youcompanyname.yourprojectname.R; 

我已经开始玩IntelliJ因为我有新的Android Studio的问题,并希望尝试一些更稳定一些(我从来没有真正使用过)。 我最终得到了可怕的“软件包R不存在”的错误。 根据我的经验,这通常是在XML文件中搞砸的东西。 对我来说,问题实际上是我为ActionBarSherlock创build的Android库模块的AndroidManifest.xml文件。 无论出于什么原因,当它创buildAndroidManifest.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> 

当我创build这个模块时,我select了文件>新build模块…然后我select了Android模块下的库模块,并且浏览了内容根目录到ABS文件的位置(其他字段自动填写正确,我没有改变它们)。 然后我点击完成,它提示我,如果我想保留本地文件或project.properties的内存文件。 我select保留本地文件,之后它不会提示我。

我不知道为什么它搞砸了AndroidManifest.xml文件(也许我上面做错了…… ???),但要解决它,我只是复制了我已经下载的库的原始AndroidManifest.xml,并取代搞乱了AndroidManifest.xml文件。 之后,我做了生成>重build项目,它解决了“包R不存在”的错误。

另外一个想法是,@ xbakesx提到了Facets设置,对于你用作库的任何模块,你应该确保在该模块的Facets下面选中了“Library module”。 当我试图弄清楚如何在IntelliJ / Android Studio中configuration库(我实际上只使用Eclipse)时,我遇到了一些问题。

我只是重新启动IntelliJ,它神奇地解决了。 先试一试。

有同样的问题 – 问题是清单文件没有正确的默认的活动设置。

对于那些已经达到这个答案的绝望的人们,我感到你的痛苦。 我花了一个小时,除了尝试所有这些以及其他来源的build议。 我已经检查了所有的XML资源两次,清理caching,重build了十几次,甚至重新启动整个机器。 这是真正为我工作的:

在“构build变体”下 (左下angular), 我select了一个不同的构build变体 (在我的情况下发布,而不是debugging) 的目标,有遗漏的R问题。 解决了它。

重构了包名 ,intellij没有在清单中更新它。

所以,如果你已经重构了包名,那么去清单并更新xml文件保存根目录中的属性“包”并重build它。 如果发生任何错误,那么在导入中可能是一个错误的包名(至less这是我的情况),所以只是修复它们

希望这有助于任何人

在我的情况下,我不得不删除intellj编译器caching。 在我的Windows机器上有点像这样:

 %USERPROFILE%\.IdeaIC12\system\compile-server\<my project> 

尝试创build新项目并select“从现有源创build项目”

加上我的0.02美元,以防其他人遇到我遇到的问题。 在我的情况下,我使用IntelliJ生成了“Hello world”应用程序,并忘记将包名称从“com.example”更改。 然后我使用IntelliJ来重构包名称。 这导致错误开始发生。

所以我做了一个“com.example”的全局search,在AndroidManifest文件中find了,正如别人提到的那样。 但是,改变这个并不能解决问题。 “.idea”目录下的“workspace.xml”中也find了“com.example”。 我改变了所有的事件,做了重build,然后又开始工作了!

这看起来像IntelliJ中的一个错误。

在Android Studio中,我的问题是,当我复制粘贴一个类作为模板使用另一个类似的类时,它会自动导入一堆东西,其中大部分不会被关联到新的类,所以我说取消。 与它它没有import com.your.packagename.R; 所以R实际上并没有被导入到我正在使用它的文件中。

可以用一个alt-enter来修复,当点击R时(它应该用红色突出显示)