1

我正在构建一个 Android 库,我希望它的一些功能仅按需下载,作为动态功能模块。

是否可以在 Android 库项目中使用动态交付(来自 Google Play 核心库)?

我尝试添加dynamicFeatures = [':my_dynamic_feature']到我的库项目中build.gradle,但是当我尝试进行 Gradle 同步时,我收到以下错误:

Could not set unknown property 'dynamicFeatures' for object of type com.android.build.gradle.LibraryExtension.

出于这个原因,我怀疑动态交付仅支持'com.android.application'但不支持'com.android.library'.

有人可以确认这是否受支持吗?
或者至少计划在未来发布 Play Core 库?

谢谢!

4

1 回答 1

0

是的,目前它只能从应用程序类中使用。

如果你想以一种以后可以支持动态特性的方式设计你的库,你可以将动态特性相关的代码移动到一个单独的库中,我们称之为 DFLibrary。您可以使用反射,而不是直接调用 DFLibrary 方法。

现在,任何想要使用您的库和 DFLibrary 但不想处理动态功能安装的客户端都可以包含您的库和 DFLibrary 的依赖项。

如果客户端想要使用 DFLibrary 作为动态特性模块,它可以自己创建一个动态特性模块并在其中包含 DFLibrary 依赖项,然后处理该动态特性模块的下载。

于 2021-06-28T19:42:39.300 回答