Android: 可以在免安装应用模块中添加活动吗?

Android: Can you add activities to the Instant App module?

我正在尝试创建一个 Instant App,但想知道我是否可以将 activity 添加到我的 Instant App 模块。

创建 Instant App 模块时,android studio 向导也不提供添加 activity 的选项,并且想知道它是否应该为空。我尝试手动添加 activity,但 运行 出现一些构建问题。

在我放弃之前,我只想问一个空的 Instant App 模块是否是它的设计方式,并且只应该依赖基础 feature/feature 模块作为依赖。

编辑: 当我尝试将 activity 添加到 com.android.instantapp 模块时,它找不到 R 资源文件。还出现构建错误:

Error:Execution failed for task :my-instantapp:packageDebugInstantAppBundle'. > 
Expected configuration ':my-instantapp:debugCompileClasspath' to contain exactly 
one file, however, it contains no files.

您不能使用 com.android.instantapp 插件向模块添加代码。

来自文档:

When you build your instant app, this module takes all of the features and creates Instant App APKs. It does not hold any code or resources; it contains only a build.gradle file and has the com.android.instantapp plugin applied to it.

鉴于所有代码都可以通过 com.android.feature 模块共享,因此无需在 instantapp 模块中包含代码。

为了可重用性,建议在应用 com.android.application 插件的模块中几乎没有代码,但要像这样向项目添加依赖项:

dependencies {
    implementation project(':features:hello')
    implementation project(':features:bye')
    implementation project(':features:base')
}

以及依赖 com.android.feature 插件的模块中的主机代码。

这些将像这样编译:

|    depending module     |     compiled to     |
|-----------------------------------------------|
| com.android.application | application apk     |
| com.android.instantapp  | apk for each module | <- then packed into a zip file