Android 即时应用程序 - 无法从基本要素资产中找到符号

Android Instant Apps - Cannot Find Symbol From Base Feature Asset

我有一个基本功能模块和一个功能模块(您可以将其称为 "child")。 base 功能模块有一个 strings.xml 文件资产,其中包含:

<resources>
   <string name="app_string">Test String</string>
</resources>

我尝试在 "child" 功能的 activity 中引用此字符串资源,如下所示:

int resId = R.string.app_string;

Android Studio 似乎尊重此引用,甚至会在我单击它时将我定向到 app_string 资源。但是,在编译期间,我遇到了以下错误消息:

Error:(13, 25) error: cannot find symbol variable app_string

我的 "child" 功能的构建 Gradle 文件也有依赖项:

dependencies {
   ...
   implementation project(':base')
}

我也试过compile project(':base'),但没有成功。

我是否明显遗漏了什么?

您的基础模块和子模块具有不同的包名称 - 假设它们是 com.example.basecom.example.child。每个都包含自己的一组资源,它们的标识符将收集在单独的 R 包中:

  • com.example.base.R
  • com.example.child.R

因为您正试图访问基本模块中定义的资源,所以您需要使用变量的完全限定名称来引用它,即 com.example.base.R.string.app_string