在动态功能模块中无法访问资源文件

时间:2018-10-16 06:12:43

标签: android android-layout app-bundle android-module android-app-bundle

我正在尝试实现动态投放类型App。 首先,我创建了一个新项目,然后为该动态步骤创建模块

从菜单栏中选择文件>新建>新建模块,然后在创建新模块对话框中选择动态功能模块,然后单击下一步。
structure of folder

我创建了一个类,想访问资源文件夹以使用layout,drawable文件夹。

也在主模块gradle中实现

实现'com.google.android.play:core:1.2.0'和 dynamicFeatures = [“:dynamic_feature”]

但是在动态模块Error display上出现错误

错误:找不到符号变量activity_main
错误:找不到符号变量iv_forward
错误:找不到符号变量seekBar

https://developer.android.com/studio/projects/dynamic-delivery https://proandroiddev.com/dynamic-feature-module-android-ondemand-module-android-app-bundle-ea0d872b32d

3 个答案:

答案 0 :(得分:0)

这个问题对我来说似乎是一个与重构相关的导入问题。

将代码移至其他模块时,请确保

  1. 移动相关的布局资源文件
  2. 更新导入以匹配新的程序包名称

虽然不是绝对必要的1.但最好的做法是将非共享的布局文件与显示它们的代码段放在同一模块中。

答案 1 :(得分:0)

对于那些面临相同问题的人: 您只能从基本模块获取资源。使用:

com.example.base_module.R.drawable.item

代替默认的R.drawable.item

答案 2 :(得分:0)

如果您在动态功能模块中并尝试访问另一个模块的可绘制对象。您应该添加该模块的包名称(drawable 所在的模块)作为前缀,如下所示

                btnOk.setImageResource(com.example.mysampleproject.R.drawable.Ok)