【问题标题】:Parse error when installing an apk which was downloaded with Chrome, but works just fine when downloaded with Firefox安装使用 Chrome 下载的 apk 时出现解析错误,但使用 Firefox 下载时工作正常
【发布时间】:2019-01-14 12:51:47
【问题描述】:

我正在从远程服务器下载一个 apk,当我通过 firefox 下载它时,它将安装并运行。当我使用 Chrome 下载 apk 时,我在 adb logcat 中收到以下消息:

D TelemetryService: event FunctionalEvent not sent because of consent:NONE , event gdpr level:FUNCTIONAL , event client id:91452636138522988

D         : Zip: EOCD not found, /data/user_de/0/com.android.packageinstaller/cache/package1805045880.apk is not zip
W zipro   : Error opening archive /data/user_de/0/com.android.packageinstaller/cache/package1805045880.apk: Invalid file
D asset   : failed to open Zip archive '/data/user_de/0/com.android.packageinstaller/cache/package1805045880.apk'
W PackageInstaller: Parse error when parsing manifest. Discontinuing installation

我也可以使用 USB 安装应用程序。这表明 apk 本身没有损坏。我想知道为什么它不能通过 Chrome 运行?

附言使用 Android 设备 7 或更高版本。

【问题讨论】:

  • 会不会是apk未签名造成的?为什么它会在 FF 而不是 chrome 中工作?
  • 它与签名无关,也许 chrome 以某种方式破坏了 APK?为什么投反对票?

标签: android cordova google-chrome firefox apk


【解决方案1】:

我们想通了,显然 firefox 会下载文件并将其解释为 zip,而其他浏览器会将包解释为内容。

仔细查看网络选项卡中的“内容长度”属性(在 chrome 与 firefox 调试器中),您可能会发现它有所不同。 chrome 接收到的文件的内容长度是 chrome 下载长度的一半。这很奇怪,因为两个 apk 文件以千字节为单位显示为相同的大小。

我们的开发人员目前正在考虑通过 Wildfly 服务器以不同的方式提供文件

【讨论】:

  • 你曾经解决过这个问题吗?我遇到了同样的问题,很想知道您的开发人员是如何解决的。这个问题只发生在我的 Android Chrome 上 - 似乎没有其他浏览器可以做到这一点。
  • @Dwebtron 嘿,Dwebtron 很抱歉回复晚了。我不确定他是如何做到的,因为它非常复杂,但我想他改变了文件的提供方式。因为不知何故,服务器似乎对文件的字节长度进行了某种估计,它只会在某个错误的点被切断。所以也许尝试将此长度设置为无穷大或其他东西。如果你想我可以问他,但现在可能为时已晚
猜你喜欢
  • 2012-06-23
  • 2021-01-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-09
  • 1970-01-01
  • 2017-01-28
相关资源
最近更新 更多