我有一个基本功能模块和一个功能模块(您可以将其称为" child")。 base 功能模块有一个strings.xml文件资产,其中包含:
<resources>
<string name="app_string">Test String</string>
</resources>
我尝试在&#34; child&#34;中引用此字符串资源。功能的活动,如下所示:
int resId = R.string.app_string;
Android Studio似乎尊重此引用,甚至在我点击它时会将我引导至app_string
资源。但是,在编译期间,我遇到以下错误消息:
Error:(13, 25) error: cannot find symbol variable app_string
我的&#34;孩子&#34;的构建Gradle文件功能也具有依赖性:
dependencies {
...
implementation project(':base')
}
我也试过compile project(':base')
,但没有成功。
我遗失了一些明目张胆的事吗?
答案 0 :(得分:7)
您的基本和子级模块具有不同的包名称 - 请说它们是com.example.base
和com.example.child
。每个都包含自己的一组资源,它们的标识符将收集在单独的R包中:
com.example.base.R
com.example.child.R
因为您尝试访问基本模块中定义的资源,所以需要使用变量的完全限定名称com.example.base.R.string.app_string
来引用它。