38

我正在尝试使用 IntelliJ IDEA 与一个发誓的同事一起开发一个 Android 应用程序,但我无法构建他发送给我的任何 Android 项目,因为每当我尝试构建时,我都会收到一条错误消息package R does not exist

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

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

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

  • 我正在处理的项目有两个库项目,它们也使用R该类,它们工作正常。

  • IDE 中的智能感知可以识别R该类并提供我期望的内容。

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

4

13 回答 13

34

我是IntelliJ的新手,所以如果这对您不起作用,我深表歉意。我遇到了同样的问题,解决方案是在Android Facet您的项目中添加一个。

(我在 Mac 上,所以这里的方向可能会稍微偏离,可能有更好的方法可以找到这个窗口,如果有,请告诉我!)

  1. 右键单击您的项目并转到Open Module Settings(似乎 F4 也可以)
  2. Facets在最左列中选择
  3. 单击 + 按钮
  4. 将一个添加Android Facet到您的项目中,瞧!
  5. 您现在可能需要导入您R的 s,这可能是一个巨大的痛苦......所以希望有人可以用一种简单的方法来自动导入

希望这对某人有帮助!

于 2012-12-21T03:51:51.340 回答
25

此处列出的另一种可能的解决方案是检查 AndroidManifest.xml 中的包名称是否与实际包的名称匹配:

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

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

于 2014-01-12T04:54:36.793 回答
13

如果您在需要“重建”之前使用已经构建的包遇到此问题。构建->重建项目。删除 gen 不会这样做,因为 IDEA 将实际生成的 R 保存在其他地方。

于 2013-04-23T11:35:16.093 回答
5

就我而言,我从另一个项目中添加了一些类,并且我必须从我的实际项目中将导入添加到 R 包中:

import com.youcompanyname.yourprojectname.R;
于 2014-12-06T14:41:15.713 回答
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>

当我创建这个模块时,我选择了文件 > 新模块...然后我在 Android 部分下选择了库模块,对于内容根,我浏览到 ABS 文件的位置(其他字段自动填写正确,但我没有改变它们)。然后我单击完成,它提示我是否要保留本地文件或 project.properties 的内存文件。我选择保留本地文件,之后它没有提示我输入任何其他文件。

我不知道为什么它弄乱了 AndroidManifest.xml 文件(也许我上面做错了......???),但为了修复它,我只是复制了我与库一起下载并替换的原始 AndroidManifest.xml混乱的 AndroidManifest.xml 文件。之后我执行了 Build > Rebuild Project 并解决了“包 R 不存在”错误。

另一个想法,@xbakesx 提到了 Facets 设置,对于您用作库的任何模块,您应该确保在该模块的 Facets 下选中“库模块”。起初,当我试图弄清楚如何在 IntelliJ/Android Studio 中配置库时(我真的只使用过 Eclipse),我遇到了一些问题。

于 2013-05-26T04:06:07.020 回答
4

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

于 2014-01-18T04:40:50.530 回答
3

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

于 2014-07-07T16:28:11.873 回答
3

对于所有已经走到这一步的绝望的人,答案是:我感受到你的痛苦。我花了一个小时什么都没做,只是尝试了上面所有的事情以及其他来源的建议。我检查了我所有的 xml 资源两次,清理了缓存,重建了十几次,甚至重新启动了整台机器。这实际上对我有用:

在“构建变体”(左下角)下,我为缺少 R 问题的目标选择了不同的构建变体(在我的情况下是发布而不是调试)解决了。

于 2015-03-16T17:00:43.343 回答
3

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

因此,如果您重构了包名,请转到清单并更新 xml 文件根目录中的属性“package”保存并重建它。如果发生任何错误,则可能是导入中的包名错误(至少这是我的情况),所以只需修复它们

希望这对任何人都有帮助

于 2016-03-12T12:26:35.103 回答
2

就我而言,我不得不删除 intellj 编译器缓存。在我的 Windows 机器上是这样的:

%USERPROFILE%\.IdeaIC12\system\compile-server\<my project>
于 2013-06-19T19:47:29.690 回答
1

尝试创建新项目并选择“从现有来源创建项目”

于 2012-10-02T07:53:38.190 回答
1

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

因此,我对“com.example”进行了全局搜索,并在其他人提到的 AndroidManifest 文件中找到了它。但是,更改此设置并不能解决问题。在“.idea”目录下的“workspace.xml”中也可以找到“com.example”。我改变了他们的所有事件,进行了重建,然后它又开始工作了!

这似乎是 IntelliJ 中的一个错误。

于 2014-10-16T11:57:57.320 回答
1

在 Android Studio 中,我的问题是当我复制粘贴一个类以用作模板来制作另一个类似的类时,它要求自动导入一堆东西,其中大部分与新类无关,所以我说取消。有了它,它就被遗漏了,import com.your.packagename.R;所以 R 实际上并没有被导入我试图使用它的文件中。

单击 R 时可以使用 alt-enter 修复(它应该以红色突出显示)

于 2015-11-06T06:46:33.620 回答