1 回答

TA贡献1906条经验 获得超3个赞
感谢您提供 gradle 文件,看起来您的 gradle 依赖项被混淆了。
包含 的com.android.feature模块baseFeature true应该是其依赖项也包含application project()和 的模块feature project()。这是您错误的主要原因:
预期配置 ':___:debugFeatureCompileClasspath' 只包含一个文件,但它不包含任何文件。
因此,从您提供的内容来看,您的application project()和feature project()是分开的。
要解决此问题,您的“基础”android_common应该是:
application project(':android')
feature project(":android_instant_feature")
你的“非基本特征”android_instant_feature应该是:
implementation project(':android_common)
这不会改变您项目的整体结构。
您com.android.application将使用以下库进行编译:core和android_common.
您com.android.instantapp将使用免安装应用 apks:android_common.apk和android_instant_feature.apk.
现在,为什么它baseFeature以前使用 2x ?不知道,不应该...
曾经有一个页面 @ https://g.co/instantapps解释了免安装应用的结构,但您可以参考我之前的一篇文章,其中涉及概述和参考链接:如何访问来自另一个功能模块的活动
旁注:我注意到implementation project(":core")你的模块中有一个共同点(减去 Instantapp)。如果那纯粹是一个像 的库com.android.library,那么你不应该像那样设置它。您实际上可以将它放在您的基础中:api project(":core")并删除其他地方的所有其他引用。将它声明为api意味着任何也实现了基类的模块也将暴露于这个依赖项。(试试看,在一些罕见的情况下,这取决于您core拥有的其他库,但请尝试查看)。
添加回答
举报