Failed to collect certificates from /data/app/vmdl201020547.tmp/base.apk: META-INF/CERT.SF indicates...

本文介绍了一种在Android 7.0及以上版本中遇到的应用安装失败问题及其解决方案。问题出现在使用常规方法在META-INF目录下放置空文件以标识渠道的情况下,特别是在采用APK Signature Scheme v2签名时。文章提供了一个具体的案例分析,并分享了一个实用工具来帮助开发者更轻松地处理多渠道打包。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

错误信息:

 

 

12-26 11:08:44.809 1501-1535/system_process E/PackageInstaller: Commit of session 201020547 failed: Failed to collect certificates from /data/app/vmdl201020547.tmp/base.apk: META-INF/CERT.SF indicates /data/app/vmdl201020547.tmp/base.apk is signed using APK Signature Scheme v2, but no such signature was found. Signature stripped?

[ 12-26 11:08:44.813 1246: 1246 E/ ]
Couldn't opendir /data/app/vmdl201020547.tmp: No such file or directory

 
 

 

错误原因:

使用了网上常见的往META-INF放置空文件,标识渠道的做法,之前常见做法是先签名apk,然后放置标识渠道的文件,然后安装,这样做法在Android7.0以下是没有问题的,但是在Android7.0以上,就会出现问题,7.0+对签名做了改动,默认v2签名,就会出现安装失败,比如华为mate9,是Android7.0就会安装失败。

 

解决方案:

 

先打签名安装包,放置标识渠道的文件,然后再重新签名,这样就会安装成功了。之前的打多渠道安装包还是可以正常使用的。

 

顺便写了一个软件,打包更方便了。

参见:https://github.com/hpu-spring87/MultiSignTools

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值