问题标签 [dynamic-feature-module]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
360 浏览

java - Android:在 featureModule 与库模块上导入资源

应用结构

featureModule = 应用插件:'com.android.dynamic-feature'

libraryModule = 应用插件:'com.android.library'

问题- 在功能模块中使用任何库资源都需要完整的包名限定符,这最终会给功能模块中的数据绑定生成的类带来问题。

描述- 我有这个上面的应用程序结构。当我尝试在任何 featureModule 中使用任何库资源时,它需要指定具有完整包名限定符的资源,因为默认情况下我将功能资源 R 作为主要导入。

所以对于任何 kotlin 类,让我们说活动代码看起来像这样

功能 1/TestActivity.kt

以上将导致未解决的引用错误,您可以通过使用 full-name so 而不是R.string.abc_testuse来解决com.blah.core-lib.R.string.abc_test

R.layout.activity_test

但是对于 XML 数据绑定,它会产生更大的问题。由于R.layout.abc_test位于功能模块中,因此无法访问库资源。我可以通过使用实用程序类来解决这个问题,并让实用程序类返回带有完整包名称限定符的字符串,但是这个问题有点限制了数据绑定的许多特性,我不能直接在 XML 本身中使用资源。

PS:如果我将功能模块转换为库模块,这一切都很好。即使在代码级别,如果它是库模块,我最终也不会使用完整的包名限定符。

有没有人有更好的建议来解决功能模块的这个问题?

0 投票
1 回答
57 浏览

android - 如何在android动态交付中执行错误代码“INCOMPATIBLE_WITH_EXISTING_SESSION”的失败状态?

根据Android开发者文档,失败状态“INCOMPATIBLE_WITH_EXISTING_SESSION”的定义是

该请求包含一个或多个已请求但尚未安装的模块。

我正在测试一个带有动态功能模块的 Android 应用程序,该模块将在单击按钮后下载/安装。我想测试安装请求进入失败状态“INCOMPATIBLE_WITH_EXISTING_SESSION”时的场景。为此,我单击了一次按钮,当请求处于“正在下载”状态时,我再次单击相同的按钮(甚至更多次),但请求不会进入失败状态并显示错误代码“INCOMPATIBLE_WITH_EXISTING_SESSION”。据我了解,这些动作应该模拟上面的定义。

您对为什么不执行失败状态或我如何执行安装请求进入 INCOMPATIBLE_WITH_EXISTING_SESSION 状态的场景有任何解释。

0 投票
2 回答
776 浏览

android - 在基本(应用程序)模块中显示来自动态功能模块的片段?

在我的基本模块(应用程序)中,我有一些片段。我想将其中一个放在动态功能模块中,该模块将按需安装。在用户决定安装这个模块之前,我只会显示一个空的占位符而不是那个片段。我知道如果它是来自动态功能模块的活动很容易,但我真的需要在我的基本模块活动中显示这个片段。

这可能吗?

0 投票
1 回答
712 浏览

android - 如何在动态功能模块中包含 AAR?

我想将一个大的 AAR 库(“crypteriumsdk”)放入一个可以按需安装的动态功能模块中。但是当我这样做时,它找不到它的资源(主题):

找不到资源样式/CrypteriumTheme(又名 com.crypter.cryptocyrrency:style/CrypteriumTheme)。

我还添加tools:replace="android:theme"application主清单(应用程序模块)中。

这里有什么问题?

在此处输入图像描述

在此处输入图像描述

settings.gradle

wallet.gradle

0 投票
1 回答
824 浏览

android - 打包同一个库的多个 APK 会在 AGP 4.0.1 上仅使用一个动态模块导致运行时错误?

我的项目中只有一个名为 search 的动态功能模块,但是当我尝试构建项目时,我得到了那个错误:

当然,我做的第一件事是研究有同样问题的人我发现:

1-这个问题 2-这个中型文章

两者都引入了相同的解决方案(使用 Android Gradle 插件 4.0)并且我的项目使用 AGP 4.0.1,但问题是我只有一个名为搜索的动态模块。我没有任何其他动态模块,更进一步我没有 RecyclerView 的依赖:androidx.recyclerview:recyclerview在我的搜索 gradle 文件中,所以这可能是一个传递依赖。

此外,您可以通过以下两种方式之一找到重复的依赖项:

1-导航到:PROJECT_NAME/module_name(在我的情况下:搜索)/build/intermediates/

然后在该目录中搜索“deps.txt”文件,打开文件,您将看到所有模块依赖项直接和传递的

2-运行 ./gradlew :module_name:dependencies 任务

如果您尝试androidx.recyclerview:recyclerview从“deps.txt”文件中删除该重复的行:它会在每次构建后再次生成。

packagingOptions {}话虽如此,我需要一些规则来防止和与任何其他格式exclude之间的冲突search.aarsearch.*

有人可以帮忙吗?

0 投票
2 回答
168 浏览

android - 在动态交付模块中使用时应用模块尺寸/颜色的值不正确

我有应用程序模块和一个名为“聊天”的动态模块。我有一个布局和片段驻留在聊天模块中,布局中有一个android:textSize="@dimen/sp20"书面的。Dimen 是在应用程序模块中定义的,因为它在我运行它时显示不正确的文本大小。我调试了它,它等于 12sp(对于 xxhdpi 设备是 36)。

我尝试以编程方式使用dimen,但结果相同。( landing_page_toolbar_title.setTextSize(TypedValue.COMPLEX_UNIT_PX, resources.getDimension(com.sendbird.R.dimen.sp20))) 。小心使用应用模块包中的“R”。

当我在聊天模块中定义相同的值时,它可以完美运行。但这对于我们的场景是不可行的。我有大量的字符串、尺寸、颜色资源,在应用程序模块中编写了多种配置。请分享可行的解决方案。

附上截图以便更好地理解。基于反射的结果比较

0 投票
0 回答
207 浏览

android - 资源 NotFoundException:可绘制(缺少名称)动态功能模块

我正在使用动态功能模块构建应用程序并将其上传到内部应用程序共享以进行测试。我可以在应用程序期间下载动态模块,但是,当我要去一个特定的片段时,我得到了错误

这里要注意的一个有趣的点是,当我在以前的版本上更新应用程序时,我没有得到这个异常。只有在全新安装的情况下才会出现。这是否暗示内部应用程序共享存在错误?还是我在这里想念的东西?

0 投票
1 回答
1847 浏览

android - 如何使用 Dagger Hilt 在动态功能模块中创建 ViewModel?

尝试在动态功能模块中创建 ViewModel private val viewModel: PostDetailViewModel by viewModels()

在片段中

结果错误

它适用于应用程序模块中的任何片段,但不适用于动态功能模块。将 ViewModel 添加到动态功能模块的正确方法是什么?我应该使用 ViewModelFactory 在 app 模块中创建 ViewModel 并从 app 模块中获取它们吗?

0 投票
0 回答
253 浏览

android - android动态特性中的主题问题

首先,我为我的英语语言能力差表示歉意。我的项目有问题。我的项目使用动态功能,有 4 个模块(app、A、B、C),我的应用程序是单个活动,这意味着主要活动在模块应用程序中,模块 A、B、C 只包含片段。我希望模块 A 有它单独的主题和单独在其 res 目录中的所有可绘制对象。我在模块A res 目录中创建了themes.xml,并定义了一个主题,其父级是应用程序模块的主题。

现在我在这个主题中设置了一些 attr 的值,例如:

我在模块 A 中的某些布局中使用该属性。但是当我运行应用程序时,它崩溃并且日志无法膨胀使用“mainAModuleBackground”属性的布局。我知道这是因为我没有在模块 A 中正确设置主题我尝试在模块 A 的清单中设置主题。我尝试在模块 A 中的片段的 onCreate 中设置主题,但问题仍然存在。你知道我该怎么做吗?

0 投票
1 回答
2389 浏览

android - 功能模块中的 Hilt

我在 android 项目中添加了一个动态功能模块。我知道 hilt 不支持这种类型的模块。我在 google 文档中找到了解决此问题的方法。

功能模块中的 Hilt

我有一个项目结构如下

  • 应用程序 - 具有应用程序活动的主模块
  • 公地
    • utils - 具有所有 android 模块通用功能的模块
      • 数据库 - 包括 DatabaseModule (hilt)
      • network - 包括 http 客户端和 NetworkModule (hilt)
      • 注入 - 包括 Mapbox Module Dependencies 类
  • 特征
    • mapboxFeature - 包括 MapboxComponent 和 MapBoxModule

当我运行一个项目时,它会得到这样的日志:

有谁知道问题是什么?