Android 如何使用具有功能模块结构的领域?

Android 如何使用具有功能模块结构的领域?,android,realm,android-instant-apps,Android,Realm,Android Instant Apps,我想将我的应用程序重写为即时应用程序。但我在将领域导入功能模块时遇到了一些问题。如果我写 应用插件:“com.android.feature” 应用插件:'realm-android' 在功能模块中,Gradle无法生成项目,错误为: 错误:(2,0)必须将android或android库插件应用于项目 但若我把这个插件放到应用程序模块中,那个么来自基本模块的类就不能使用Realm apply插件:“com.android.application” 应用插件:'realm-android' 下一

我想将我的应用程序重写为即时应用程序。但我在将领域导入功能模块时遇到了一些问题。如果我写

应用插件:“com.android.feature”
应用插件:'realm-android'

在功能模块中,Gradle无法生成项目,错误为:

错误:(2,0)必须将android或android库插件应用于项目

但若我把这个插件放到应用程序模块中,那个么来自基本模块的类就不能使用Realm

apply插件:“com.android.application”
应用插件:'realm-android'

下一步将出现错误:
错误:(23,16)错误:包io.realm不存在


如何在功能模块中使用领域?

领域明确检查
com.android.application
com.android.library
插件是否存在。因为它不知道
com.android.feature
plugin,所以您会收到一个异常


我有一个更好的问题,你将如何保持在4MB的APK限制下,用Realm@ChristianMelchiorI将几个模块的应用程序分开。一些用于即时应用程序,一些用于已安装应用程序。问题是我不能在功能模块中使用
apply plugin:
。@EpicPandaForce就MB而言,Realm有多大?~1MB pr.支持的CPU体系结构。标准包大约为6MB。不过,使用APK Split可以大幅降低这一成本。我不确定它是否有效,但您可以尝试创建单独的库模块,向其中添加领域插件,并将此模块导入基本功能
build.gradle
。注意应用程序包;在基本模块中使用
应用插件:“realmandroid”
。功能模块仍然可以使用领域代码,从基本模块继承领域依赖关系。我只需要从功能模块中删除
apply插件:“realmandroid”
void apply(Project project) {
    // Make sure the project is either an Android application or library
    def isAndroidApp = project.plugins.withType(AppPlugin)
    def isAndroidLib = project.plugins.withType(LibraryPlugin)
    if (!isAndroidApp && !isAndroidLib) {
        throw new GradleException("'com.android.application' or 'com.android.library' plugin required.")
    }