首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >动态特征模块未安装

动态特征模块未安装
EN

Stack Overflow用户
提问于 2020-01-20 16:06:40
回答 1查看 1.9K关注 0票数 3

我正在添加一个随需应变的动态功能模块在我的应用程序,但我有一个问题。

当我安装那个功能模块时

代码语言:javascript
复制
val request = SplitInstallRequest.newBuilder()
    .addModule("ondemandfeature")
    .build()
splitInstallManager.startInstall(request)

打印以下日志

代码语言:javascript
复制
12:54:42.301/? I/PlayCore: UID: [11113]  PID: [30056] SplitInstallService : startInstall([ondemandfeature],[])
12:54:42.807/? I/Finsky: [2] mvr.a(112): Installer: Request install. package=com.package.my, version=16081, mods=[ondemandfeature], priority=2, reason=SplitInstallService
12:54:43.239/? I/Finsky: [2] myc.a(325): IT: Required downloads: [..split.ondemandfeature.config.xxhdpi, ..split.ondemandfeature, ..split.ondemandfeature.config.pt]
12:54:43.263/? I/Finsky: [2] mpw.a(3): Downloading full file for com.package.my (..split.ondemandfeature.config.xxhdpi)
12:54:43.282/? I/Finsky: [2] mxo.a(2): IT: Send Resource Request for com.package.my downloadid: ..split.ondemandfeature.config.xxhdpi).
12:54:43.287/? I/Finsky: [2] mxc.a(8): IT: Sent download request for com.package.my, adid: ..split.ondemandfeature.config.xxhdpi, isid: 21FGah5gQD6I6P4uDfGY32
12:54:43.379/? D/DownloadManager: [6235] Starting {ondemandfeature feature for MyAppName} by {10058:com.android.vending}
12:54:44.296/? I/Finsky: [2] myc.a(174): IT: Prepare to copy com.package.my (adid: ..split.ondemandfeature.config.xxhdpi , isid: 21FGah5gQD6I6P4uDfGY32) from content://downloads/my_downloads/6235 (expect 17096 bytes, isCompressed: false)
12:54:44.322/? I/Finsky: [87461] dxz.doInBackground(18): com.package.my (..split.ondemandfeature.config.xxhdpi) (17096 bytes) copied successfully in 0 ms
12:54:44.329/? I/Finsky: [2] mxh.a(5): IT: Successfully copied APK to update com.package.my (adid: ..split.ondemandfeature.config.xxhdpi , isid: 21FGah5gQD6I6P4uDfGY32)
12:54:44.342/? I/Finsky: [2] mpw.a(3): Downloading full file for com.package.my (..split.ondemandfeature)
12:54:44.346/? I/Finsky: [2] mxo.a(2): IT: Send Resource Request for com.package.my downloadid: ..split.ondemandfeature).
12:54:44.350/? I/Finsky: [2] mxc.a(8): IT: Sent download request for com.package.my, adid: ..split.ondemandfeature, isid: 21FGah5gQD6I6P4uDfGY32
12:54:44.382/? D/DownloadManager: [6236] Starting {ondemandfeature feature for MyAppName} by {10058:com.android.vending}
12:54:44.920/? I/Finsky: [2] myc.a(174): IT: Prepare to copy com.package.my (adid: ..split.ondemandfeature , isid: 21FGah5gQD6I6P4uDfGY32) from content://downloads/my_downloads/6236 (expect 168472 bytes, isCompressed: false)
12:54:44.934/? I/Finsky: [87462] dxz.doInBackground(18): com.package.my (..split.ondemandfeature) (168472 bytes) copied successfully in 2 ms
12:54:44.938/? I/Finsky: [2] mxh.a(5): IT: Successfully copied APK to update com.package.my (adid: ..split.ondemandfeature , isid: 21FGah5gQD6I6P4uDfGY32)
12:54:44.949/? I/Finsky: [2] mpw.a(3): Downloading full file for com.package.my (..split.ondemandfeature.config.pt)
12:54:44.953/? I/Finsky: [2] mxo.a(2): IT: Send Resource Request for com.package.my downloadid: ..split.ondemandfeature.config.pt).
12:54:44.957/? I/Finsky: [2] mxc.a(8): IT: Sent download request for com.package.my, adid: ..split.ondemandfeature.config.pt, isid: 21FGah5gQD6I6P4uDfGY32
12:54:44.996/? D/DownloadManager: [6237] Starting {ondemandfeature feature for MyAppName} by {10058:com.android.vending}
12:54:45.425/? I/Finsky: [2] myc.a(174): IT: Prepare to copy com.package.my (adid: ..split.ondemandfeature.config.pt , isid: 21FGah5gQD6I6P4uDfGY32) from content://downloads/my_downloads/6237 (expect 12626 bytes, isCompressed: false)
12:54:45.439/? I/Finsky: [87461] dxz.doInBackground(18): com.package.my (..split.ondemandfeature.config.pt) (12626 bytes) copied successfully in 3 ms
12:54:45.450/? I/Finsky: [2] mxh.a(5): IT: Successfully copied APK to update com.package.my (adid: ..split.ondemandfeature.config.pt , isid: 21FGah5gQD6I6P4uDfGY32)

这让我相信动态功能模块安装成功了。但当我试图检查已安装的模块时:

代码语言:javascript
复制
splitInstallManager.installedModules

它返回一个空列表。

我遗漏了什么吗?

附加信息:

下面是一个SplitInstallStateUpdatedListener的日志

代码语言:javascript
复制
// begin
PENDING (printed 4x)
DOWNLOADING (printed 14x)
INSTALLING (printed 1x)
DOWNLOADED (printed 1x)
// end

我还注意到,在INSTALLING日志之后,打印了以下日志:

代码语言:javascript
复制
I/Finsky: [2] dyv.<init>(17): com.package.my is installed but certificate mismatch

什么意思?

补充信息2:

在Pixel3XL (Android 10)设备上,可以成功下载和安装随需应变的动态功能模块。

但是,在摩托罗拉G5 (Android8.1)设备上,按需动态功能模块仅被下载,但从未安装过。

补充信息3:

出于某种原因,下载和安装只能在Android 10设备上运行,但我不知道为什么。

为了测试这个特性,我使用了内部应用程序共享工具__,在那里我可以上传应用程序包。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-01-27 15:59:56

我发现,由于我的项目配置错误,我正在经历这些问题。

请确保在您的项目中正确设置了以下内容:

  • 使用SplitCompatApplication作为您的Application类;在使用动态特性的Activities上调用
  • SplitCompat.installActivity(this)

代码语言:javascript
复制
override fun attachBaseContext(newBase: Context?) {
    super.attachBaseContext(newBase)

    SplitCompat.installActivity(this)
}

有关更多信息,请仔细阅读以下代码:https://codelabs.developers.google.com/codelabs/on-demand-dynamic-delivery/

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59827021

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档