【问题标题】:Cannot resolve symbol 'R' sub-package or outside package无法解析符号“R”子包或外部包
【发布时间】:2021-09-22 18:57:48
【问题描述】:

当我尝试将一个类/活动放入子包或主应用程序包之外时,它找不到“R”。 必须手动导入“R”。

Here the picture

我知道清单告诉您“R”文件必须在哪个包中确定范围。

Here the picture

如何从 gradle 或清单中告诉您我正在使用多个包而不导入“R”?

【问题讨论】:

  • 导入R有什么问题?就像任何其他类一样,如果您想在它不在的包中使用它,则必须使用导入或使用完全限定名称。另外,please do not upload images of code/errors when asking a question.
  • 我只是不想这样(出于其他架构原因)。会有什么办法吗?就像您为使用 sourceSets 修改清单的布局定义多个文件夹一样。
  • 不,如果你想使用一个不在你的包中的类,那么你必须导入它。您可能能够破解 R 的生成以在多个包中生成它(或在生成后复制它),但这是善变的,几乎可以肯定不值得您遇到麻烦。由于您似乎不愿意解释您的“架构原因”,我什至无法提出更好的选择。
  • 对不起,第一句话不太正确:您始终可以通过其完全限定的类名引用该类,然后您不必导入。但这可能比添加导入更糟糕。
  • 请提供足够的代码,以便其他人更好地理解或重现问题。

标签: java android android-gradle-plugin android-manifest


【解决方案1】:

解决方案 1:

我也有这个问题。一个简单的'gradlew clean''gradlew build' 就可以了。


点击Build->Clean Project,这将执行gradle clean

解决方案 2:

您可以尝试使缓存失效并重新启动intellij,在很多情况下会有所帮助。


文件 -> 使缓存无效/重新启动

【讨论】:

    猜你喜欢
    • 2017-07-30
    • 2018-07-01
    • 2018-01-16
    • 2018-02-21
    • 1970-01-01
    • 2014-12-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多