【问题标题】:Split install requested but the app is not owned请求拆分安装,但该应用程序不属于自己
【发布时间】:2020-04-24 11:09:48
【问题描述】:

我遇到了一个关于安装动态功能模块的非常奇怪的问题。它显示了这些错误:

? W/Finsky: [1947] wiz.a(70): Split install requested but the app is not owned, package: xxx
? I/PlayCore: UID: [10165]  PID: [29261] SplitInstallService : onError(-5)
? W/DefaultProgressFragment: Installation failed with error -5

但如果我将完全相同的 *.aab 上传到 internal app sharing,一切正常。是否有可能导致此问题,我该如何解决?

谢谢!

【问题讨论】:

  • 您在哪里遇到这个问题?在生产中?在本地开发中?
  • 我上传到内测频道。如果我将 aab 文件抓取到内部应用程序共享,那么它可以工作
  • @Pierre 我可以在 google play 上的两个不同的 applicationId 中使用相同的功能包名称吗?例如com.applicationA & com.applicationB 都有 com.feature.C

标签: android google-play android-app-bundle dynamic-feature-module dynamic-feature


【解决方案1】:

一个应用不能代表另一个应用请求安装动态功能。

IIUC,您提到您有两个应用程序com.applicationAcom.applicationB 都使用另一个应用程序com.feature.C 的功能。如果要下载应用com.feature.C的动态功能,则必须从该应用的进程中完成。

【讨论】:

  • 对不起,我们不代表其他应用程序请求。我想知道 Google Play 如何识别“功能”?是按功能名称(Gradle 中的模块名称)还是按其包名称?如果有两个应用程序巧合地使用相同的功能名称会发生​​什么?在我们的场景中,我们希望发布多个应用程序按不同的环境设置划分,例如 chrome beta/dev。它们两者可能具有相同的功能名称(但可能具有不同的实现)。
  • 如果我使用这个例子 github.com/googlecodelabs/android-dynamic-features/archive/… 并将 applicationId & signingConfig 更改为与我的相同。上传到internal test 会报同样的错误
  • 总结一下: 1. Google play如何认为该功能不属于应用程序?使用官方样本也有同样的问题。 2. 为什么这个问题只发生在Internal TestInternal app sharing 有效? 3. 此时我可以做些什么来使按需功能交付工作?
  • 特性名称就是Gradle中的模块名称,是的。多个应用程序可以共享相同的模块名称,因为它们与应用程序的包名称相关联。当您通过工厂构造 SplitInstallManager 实例时,您必须传递一个 Context 对象。此上下文必须来自拥有该模块的应用程序(即每个 context.getPackageName())。
  • 放宽了对内部应用共享的包名限制,这解释了行为上的差异。我会试着找出原因。
猜你喜欢
  • 1970-01-01
  • 2012-12-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-24
  • 1970-01-01
  • 2020-11-10
  • 2019-06-17
相关资源
最近更新 更多