Android动态特性:Error语言 - 2 Module Unavailable



我一整天都在调试,没有结果,我遵循了每个文档和谷歌代码实验室,并将包上传到内部测试,错误仍然存在:模块不可用,下面是我的实现:

<<p>模块/strong>AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest 
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:dist="http://schemas.android.com/apk/distribution"
package="com.appshive.shop"
>
<dist:module
dist:instant="false"
dist:title="@string/measure">
<dist:delivery>
<dist:on-demand />
</dist:delivery>
<dist:fusing dist:include="true" />
</dist:module>
</manifest>

模块build.gradle:

plugins {
id 'com.android.dynamic-feature'
id 'kotlin-android'
id 'kotlin-kapt'
id 'kotlin-android-extensions'
}
android {
compileSdkVersion 30
buildToolsVersion "30.0.2"
defaultConfig {
minSdkVersion 22
targetSdkVersion 30
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
kotlinOptions {
jvmTarget = '1.8'
}
}

和模块都有片段以及它们的依赖关系。

Android Manifest:

我添加了这个

dynamicFeatures = [':measure']
android:name=".core.ShopApplication"

和我的应用程序id在构建。Gradle是:com.appshive.ecommerce

my application class extendsSplitCompatApplication

class ShopApplication: SplitCompatApplication(){
override fun onCreate() {
super.onCreate()
Timber.plant(DebugTree())
SplitCompat.install(this)
startKoin {
androidContext(this@ShopApplication)
modules(listOf(appModule, repoModule))
}
}

我在所有项目中只有一个活动:主活动,它包含

private lateinit var manager: SplitInstallManager
在onCreate中我初始化了它:= SplitInstallManagerFactory.create(this)

我正在检查模块是否可用,我正在打开片段else:

val request = SplitInstallRequest.newBuilder()
.addModule(name)
.build()
manager.startInstall(request).addOnSuccessListener {
makeToast("Successss")
}.addOnFailureListener { e->
makeToast(e.message.toString()+" as")
}

和我注册侦听器经理:

override fun onPause() {
manager.unregisterListener(listener)
super.onPause()
}
override fun onResume() {
manager.registerListener(listener)
super.onResume()
}

这就是全部,然后我使用我的密钥生成签名包并将其上传到内部测试,之后我将其安装在我的手机上,然后出现错误:错误-2模块不可用

我已经尝试了所有的方法在互联网上没有运气,我不知道我错过了什么。是因为捆签还是因为包装?

当我改变模块安装时间模块,它像一个魅力。

当我在开发这个功能时,我只测试了Playstore的内部测试功能。

后来我知道还有另一种方法可以在本地完成,使用一个名为Bundle tool的工具。

你可以从给定的链接下载。下载Bundle Tool文件后,需要使用它生成apk。

bundletool build-apks 
--bundle=app/build/outputs/bundle/debug/bundle.aab
--output=my_app.apks

Ref: Android App Bundle

p。当我在我的应用程序中做这个功能时,我是用Java代码开发的,但我100%肯定它也可以用kotlin代码工作。

最新更新