攻略资讯

为什么软件未安装(为什么电脑安装不了软件)

更新时间:2023-08-14 18:00:56

今天游戏包和渠道包合并,成功回编生成apk之后,采用zipalign对齐优化,然后采用打包工具jarsigner签名。

def Sign_haveback(input,signFile):    if len(signFile)==0:        signFile = default_signFile    output = input.split('.')[0] + '_sign.apk'    print(output)    order = jdkroot + '/bin/jarsigner -verbose -keystore ' + signFile + " -signedjar " + output + " " + input + " " + default_account + " -storepass " + default_password    ResultFile = os.system(order)    if ResultFile == 0:        return 'Success'    else:        return 'Fail'


Android 11(API 级别 30)的应用zipalign对齐之后安装不了的原因


然后迫不及待地安装,爆出以下错误:

Failed to commit install session 679667849with command cmd package install-commit679667849.Error: -124: Failed parse duringinstallPackageLl: Targeting R+(version 30and above) requires the resources.arsc ofinstalled APKs to be stored uncompressedand aligned on a 4-byte boundary

Android 11(API 级别 30)的应用zipalign对齐之后安装不了的原因

target30出现的问题

按照以上失败信息提示:如果以 Android 11(API 级别 30)或更高版本为目标平台的应用包含压缩的 resources.arsc 文件或者如果此文件未按 4 字节边界对齐,应用将无法安装。如果存在其中任意一种情况,系统将无法对此文件进行内存映射。无法进行内存映射的资源表必须读入 RAM 中的缓冲区,从而给系统造成不必要的内存压力,并大大增加设备的 RAM 使用量。

看了下zipalign对齐结果,发现resources.arsc对齐了但是没有压缩,别的都压缩和对齐了

Android 11(API 级别 30)的应用zipalign对齐之后安装不了的原因

满足的啊,好像没做错啊。

对齐指令如下

zipalign -v 4 F:examplegame-filedistgame.apk game_aligned.apk

做了几遍发现没错,确实resources.arsc对齐了那么也压缩了。回想自己操作步骤,是采用的V1签名。会不会这里有问题,换为V2签名。

java -jar apksigner.jar sign --ks test.jks --ks-key-alias testalias --ks-pass pass:xxx --key-pass pass:xxx --out F:output.apk F:game_aligned.apk

出包测试,这会正常了。


原来采用API30及以上的应用合并的时候除了对齐之外,还要使用v2签名才可以

为什么软件未安装(为什么电脑安装不了软件)

最新资讯

精品游戏

Copyright © 搜游网

赣ICP备19005317号-6