【问题标题】:In Dynamic Feature Module can not access Resource file在动态功能模块中无法访问资源文件
【发布时间】:2018-10-16 06:12:43
【问题描述】:

我正在尝试实现动态交付类型的应用程序。 首先,我创建新项目,然后为此创建模块用于动态步骤

从菜单栏和 Create New Module 对话框中选择 File > New > New Module,选择 Dynamic Feature Module 并单击 Next。
structure of folder

我创建类并希望访问资源文件夹以使用布局、可绘制文件夹。

也在主模块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

【问题讨论】:

  • 我也面临同样的问题
  • 您尝试访问的资源位于哪个模块中,您尝试从哪个模块访问它们?
  • 我想从基础模块访问资源到动态模块
  • 我想将基础模块的活动访问到动态模块

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


【解决方案1】:

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

com.example.base_module.R.drawable.item

改为关闭默认R.drawable.item

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

      对我来说,这个问题看起来像是与重构相关的导入问题。

      将代码移动到不同的模块时,请确保

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

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

      【讨论】:

      • 在我的项目中,我添加了动态模块,其中没有资源文件夹。那我怎么走?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-05
      相关资源
      最近更新 更多