已下载扩展文件但不存在

War*_*zit 7 android apk-expansion-files

所以我复制了Android的扩展包示例,并根据谷歌提供的指南运行.我已成功通过存储本地.obb文件使其工作,但我无法让它与下载.obb文件一起工作.状态已更改为IDownloaderClient.STATE_COMPLETED但未找到任何文件.

我经历过的步骤:

  1. 使样品运行(更新了BASE64_PUBLIC_KEY,new package name,version number)
  2. 使用本地.obb文件成功测试.
  3. 制作apk并上传到与扩展文件一起播放.
  4. 安装签名的apk并运行应用程序.< - 这里说下载很成功,但在下载过程中没有给出任何进度更新.

请帮助获取下载的扩展文件.

编辑:在第4步,我现在得到下载失败,因为无法找到资源.

编辑2:所以在调试之后,我看到状态变为无需下载,但无法验证文件,因为它丢失了.因此,出于某种原因,它认为该文件已被下载.

编辑3:所以在DownloaderService.class中我们有一个run()方法,它使得getExpansionURLCount()返回0.文档说:this will return zero if there has been no LVL fetch in the current session.经过多次挖掘后,我发现我从Google获得processServerResponse()的响应中包含响应代码256并且没有密钥FILE_URL.那么原因是什么?

Gle*_*idt 5

我知道这个答案并没有解决潜在的问题,但我认为这个解释可能会帮助像我这样对下载器库的响应感到困惑的其他人:

当 Google 许可服务器通知它没有与应用程序关联的扩展文件时,下载器服务将(有点不直观)传递STATE_COMPLETEDonDownloadStateChanged()。由于它必须对服务器进行异步调用才能发现这一点,因此它不能NO_DOWNLOAD_REQUIRED直接从startDownloadServiceIfRequired(). 它必须启动服务以咨询服务器。

但它似乎只会在您安装应用程序后第一次调用下载服务时执行此操作 - 之后,它会将来自许可服务器的响应缓存在本地数据库中,并且以后调用startDownloadServiceIfRequired()将立即返回NO_DOWNLOAD_REQUIRED

响应码 256 对应于Policy.LICENSED,表示包名和公钥是有效的,但没有任何FILE_URL表明 Google Play 认为应用程序没有扩展文件

就我而言,我的扩展文件在应用程序处于草稿状态时有效,但一旦发布,它实际上从商店中消失了。我一直无法确定原因。