博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android apktool更新版本后遇到的一些问题
阅读量:6815 次
发布时间:2019-06-26

本文共 3306 字,大约阅读时间需要 11 分钟。

hot3.png

  1. 遇到问题:

    由于apktool工具版本的升级和打包环境的升级,在使用apktool d -f hello.apk时,会出现如下错误提示,让我头疼了好久:

C:\Users\beijing_zbs\Desktop\apktool>apktool.bat d -f TencentNews_63.apk unzipI: Baksmaling...I: Loading resource table...Exception in thread "main" brut.androlib.AndrolibException: Could not decode arsc file        at brut.androlib.res.decoder.ARSCDecoder.decode(ARSCDecoder.java:54)        at brut.androlib.res.AndrolibResources.getResPackagesFromApk(AndrolibResources.java:540)        at brut.androlib.res.AndrolibResources.loadMainPkg(AndrolibResources.java:76)        at brut.androlib.res.AndrolibResources.getResTable(AndrolibResources.java:68)        at brut.androlib.Androlib.getResTable(Androlib.java:51)        at brut.androlib.ApkDecoder.getResTable(ApkDecoder.java:191)        at brut.androlib.ApkDecoder.decode(ApkDecoder.java:116)        at brut.apktool.Main.cmdDecode(Main.java:148)        at brut.apktool.Main.main(Main.java:77)Caused by: java.io.IOException: Expected: 0x001c0001, got: 0x00000000        at brut.util.ExtDataInput.skipCheckInt(ExtDataInput.java:48)        at brut.androlib.res.decoder.StringBlock.read(StringBlock.java:43)        at brut.androlib.res.decoder.ARSCDecoder.readPackage(ARSCDecoder.java:100)        at brut.androlib.res.decoder.ARSCDecoder.readTable(ARSCDecoder.java:81)        at brut.androlib.res.decoder.ARSCDecoder.decode(ARSCDecoder.java:49)        ... 8 more

2. 解决办法:

    升级apktool

    

    

Quick Check

  • Apktool 2.x (Versions after 1.5.2)

  1. Is Java 1.7 installed?

  2. Does executing java -version on command line / command prompt return 1.7?

  3. If not, please install Java 7 and make it the default.

Installation for Apktool 2.x

  • Windows:

  1. Download Windows  (Right click, Save Link As apktool.bat)

  2. Download apktool-2 ()

  3. Rename downloaded jar to apktool.jar

  4. Move both files (apktool.jar & apktool.bat) to your Windows directory (Usually C://Windows)

  5. If you do not have access to C://Windows, you may place the two files anywhere then add that directory to your Environment Variables System PATH variable.

  6. Try running apktool via command prompt

3. 升级以后,使用apktool d -s -m -f hello.apk这个工具就可以了

4.编程实现:

## -*- coding: utf-8 -*-'''Created on 2015-2-2@author: baosenzhang'''import osdef findversionline(path):    f = open(path,'r')      #lines=f.readlines()    for l in f.readline():          line = f.readline()          #print l,line        if line.find('versionName')>-1:              #print "OK"            return line.strip('\n')        else:            return     f.close()  def readversioninfo(versioninfolinestr):    versioninfo=versioninfolinestr.split(' ')    return [versioninfo[1].split('"')[1],versioninfo[2].split('"')[1]]def readcontent(path):    file = open(path,'r')    send_string = ''    try:        send_string=file.read()    finally:        file.close()          #print send_string.decode('gb2312').encode('utf-8')        return send_stringdef apktooltest():    os.system('apktool d -s -m -f ..\AppFolder\TencentNews_14.apk -o ..\unzipfolder\\')    versioninfo=findversionline("\\unzipfolder\\AndroidManifest.xml")    print versioninfo    getpackageversion=readversioninfo(versioninfo)    print getpackageversion    read_channel = readcontent('\\unzipfolder\\assets\\channel')    print read_channelif __name__ == '__main__':    apktooltest()

转载于:https://my.oschina.net/u/199776/blog/374273

你可能感兴趣的文章
对react中setState的总结
查看>>
[回炉计划]-实现一个图片预加载
查看>>
正则表达式
查看>>
360前端星计划学习-html
查看>>
Hybrid小程序混合开发之路 - 数据交互
查看>>
一个技术创业者的2018年度回顾和总结 | 掘金年度征文
查看>>
专注dApp高效执行和高并发的下一代公有链
查看>>
ONE-sys 整合前后端脚手架 koa2 + pm2 + vue-cli3.0 + element
查看>>
携带更方便功能全 iPone与Apple Watch球形尿袋
查看>>
行为型模式:策略模式
查看>>
实现批量数据增强 | keras ImageDataGenerator使用
查看>>
太忙女友消息未及时回复,分手吗?python微信自动消息帮你谈恋爱
查看>>
Java 多线程NIO学习
查看>>
命名实体识别
查看>>
动态切换的动态代理
查看>>
电商项目(下)
查看>>
vue 数字滚动递增效果
查看>>
vue2.0中父子,兄弟组件的传值2
查看>>
原生js如何实现懒加载?
查看>>
Spring Boot注解常用!!!看了就可以开发大量项目了
查看>>