加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 如何在安装apk时修复lollipop中的解析错误

发布时间:2020-12-15 02:12:34 所属栏目:Java 来源:网络整理
导读:我有一个应用程序,它将从我们的服务器下载其他apks并逐个安装它. 这在低于棒棒糖5.0的版本中工作正常,但在棒棒糖设备的情况下,它提供解析错误. 我还检查了从设备中的未知来源安装apk的选项. 安装apk时logcat中的详细警告是: Zip:中央目录末尾的2个无关字节
我有一个应用程序,它将从我们的服务器下载其他apks并逐个安装它.
这在低于棒棒糖5.0的版本中工作正常,但在棒棒糖设备的情况下,它提供解析错误.
我还检查了从设备中的未知来源安装apk的选项.
安装apk时logcat中的详细警告是:

Zip:中央目录末尾的2个无关字节

W / zipro(5776):打开存档/data/local/tmp/HDO.apk时出错:文件无效

D / asset(5776):无法打开Zip档案’/data/local/tmp/HDO.apk’

W / DefContainer(5776):无法解析/data/local/tmp/HDO.apk中的包:android.content.pm.PackageParser $PackageParserException:
?无法解析/data/local/tmp/HDO.apk

我尝试过的事情和结果如下,

1.创建新的新apk并通过adb将其推送到设备并尝试安装 – 安装成功.

2.将相同的apk上传到服务器后,从浏览器下载[不通过应用程序] – 失败“[INSTALL_FAILED_INVALID_APK]

3.我已经实现了MD5校验和来验证apk下载,校验和也很好.

4.如果我再次签署下载的apk或zip对齐apk [Effectively repackage apk]并尝试安装-Install successfull.

请帮帮我,如何解决这个问题.

清单中的权限:

<uses-sdk
        android:minSdkVersion="9"
        android:targetSdkVersion="22" />

    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    <uses-permission android:name="android.permission.INSTALL_PACKAGES" />
    <uses-permission android:name="android.permission.DELETE_PACKAGES" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.BLUETOOTH" />
    <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
    <uses-permission android:name="android.permission.NFC" />
    <uses-permission android:name="android.permission.REBOOT" />
    <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
    <uses-permission android:name="android.permission.WRITE_APN_SETTINGS" />
    <uses-permission android:name="android.permission.WRITE_SETTINGS" />
    <uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS" />
    <uses-permission android:name="android.permission.UPDATE_DEVICE_STATS" />
    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
    <uses-permission android:name="android.permission.WAKE_LOCK" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_UPDATES" />
    <uses-permission android:name="android.permission.SET_TIME" />
    <uses-permission android:name="android.permission.SET_TIME_ZONE" />

解决方法

最后,问题得到解决!!实际上问题出在我下载应用程序的服务器上.在服务器端需要更新一些.jars来解决这个问题.因此,我学到的经验教训总是双重确认之前深入研究android框架级别.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读