Intellij IDEA 14 - 包R不存在

16

嗯,我知道这个问题之前已经被问过了,但是在浏览其他答案时:
IntelliJ IDEA - 无法构建任何内容,始终出现“ package R不存在”
错误:java:包R不存在
等等。
这些解决方案都不起作用。

这是为一个项目构建,至少在最近几天内一直构建良好,因此导致问题的原因必须是新的。

症状:
尝试进行Build > Rebuild Project失败。 我看到编译生成的源代码步骤在状态栏中通过,但下一个编译步骤失败,出现了可怕的“ java:package R不存在”。

R在IDE中完全正常,因此仅编译失败,表明存在生成的源代码的编译问题。 似乎事实证明,在out / production / [module]目录中,只有一些资源文件显示,没有编译的类,在“ generated ”sbsubpackage中没有东西,也没有apk文件。

有趣的是,当我将手机连接到计算机并尝试在设备上运行应用程序时,会捕获新更改,因此某些内容在某个地方成功构建。

我尝试过的事情:
根据其他线程,我尝试了以下操作:

  1. 进行完全重建。
  2. 重新启动IntelliJ(包括无效缓存)
  3. 重新启动计算机。
  4. 检查是否在源代码中包含了gen包。
  5. 检查是否有任何排除项(没有)
  6. 删除存根R文件并强制IntelliJ重新生成它(它会迅速这样做)
  7. 确认模块上有Android facet。
  8. 仔细检查清单xml文件是否已更改以及引用的活动是否正确。
  9. 检查了排除输出路径是否未被选中(由于继承自项目编译路径,因此它是灰色的,但我尝试切换并手动取消选中它......没有运气)。

最近XML文件中唯一的更改是:

  • 一个菜单文件中的新项。尽管没有报告任何错误,但我尝试删除它以查看是否存在问题,但问题仍然存在。
  • 将View类移动到其先前包的子包中。该View类在一个布局xml中被引用,并确认xml已更新为新的包名称。

所以目前我想不出其他的办法了。很抱歉重新提出一个有点常见的问题。


嗯,我注意到在最近的更新后出现了问题。无法构建任何项目(即使在Ctrl+F10之后进行构建 - 在运行期间,找不到资源类并且会崩溃)。在使用Idea的过去一年中没有遇到过这个问题。相信有人为了让每个人都使用gradle而破坏了某些东西。 - sandrstar
7个回答

11

我也有同样的问题,它明显与IDE的最新更新有关。我的版本是IU-139.1117.1。 在更新之前,“Build” -> “Rebuild Project” 在Windows和Mac安装的IDE中都能正常工作。我首先更新了Windows,但即使是一个新的Android项目,“Rebuild Project” 也会显示“Package R does not exist”错误。在更新后立即在Mac安装中出现了相同的错误。构建菜单上的“Make project”、“Make module”和“Compile”命令都能正常工作,只有“Rebuild project”引发错误。 对于一个新的Gradle Android项目,一切都正常。似乎最新更新出了问题。


2
感谢sandrstar的评论,我在JetBrains开发者论坛上进行了搜索,并找到了这个链接:https://youtrack.jetbrains.com/issue/IDEA-135831,其中提到了这个帖子:https://devnet.jetbrains.com/message/5533840#5533840。我已经拿到了14.0.2版本的安装程序,所以如果线程中提到的删除和重新添加模块的技术不起作用,我会回退。 - Ben Leitner
遇到了同样的问题。由于我不知道如何回退到14.0.2,所以我安装了Android Studio。这个方法有效。 - Raul Pinto
3
我不确定如何恢复,所以我只是下载了14.0.2安装程序,进行了完全卸载和重新安装。在“之前的版本”下没有方便的14.0.2版本链接,但手动编辑网址为http://download.jetbrains.com/idea/ideaIU-14.0.2.exe 即可解决问题。在卸载时,有一个选项可以保留设置信息,因此我不必进行任何重新自定义。 (注意:如果您需要不同操作系统或社区版本,请在此处查找相应链接 https://confluence.jetbrains.com/display/IntelliJIDEA/Previous+IntelliJ+IDEA+Releases并更改版本#)。 - Ben Leitner

10

据报道,这是IDEA 14.0.3的问题(http://youtrack.jetbrains.com/issue/IDEA-135234)。

您可以尝试对包含缺少R文件的模块进行“编译模块”(Ctrl-Shift-F9)。这对我有效(但每次添加/删除资源时都需要执行此操作)。


看起来有两个问题。我尝试只编译一个模块,但好像不起作用。感谢提供第二个问题的链接。 - Ben Leitner
1
似乎在14.1中已经修复。感谢提供错误报告的链接。 - Michael Levy
1
@MichaelLevy 已确认。截至3月27日,只需将您的IntelliJ IDE更新到14.1即可。 - hylander0
如果某个文件是问题所在,您也可以编译模块中的特定文件。 - Cory Klein

4

不要使用“重建项目”,而应该使用“编译项目”并刷新您的项目,可能需要尝试几次。


也做了这个。根据之前的评论/答案,这是14.0.3版本的问题。 - Ben Leitner

0
今天我在Windows 7上遇到了同样的问题,使用IntelliJ 14.1.5处理Java 7 Gradle项目。问题是,某种方式类路径“太长”了,但IntelliJ只给出了那些奇怪的“java:package foo不存在”的编译错误。
通常的技巧(也见上文)没有帮助。
解决方法是稍微缩短一下类路径,在我的情况下将GRADLE_USER_HOME设置为c:/.gradle(之前是c:/ users / myusername / .gradle)。重新同步Gradle项目后,一切正常工作。
因此,问题显然是某种Windows文件系统路径长度限制。

0

问题已经在现在可用的IntelliJ IDEA 14.1更新中解决。


0
尝试点击文件 | 无效缓存。这个方法解决了我的问题。

尝试了第二个方法,回退到14.0.2版本后问题得以解决。 - Ben Leitner

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接