天天看点

Android上UMENG渠道打包工具出错原因分析

之前在做apk渠道打包的工作,使用的是国内友盟的工具,根据工作的需要,进行相应的修改,遇到过解包错误的问题,特记一笔。

测试的时候发现使用友盟的工具始终提示找不到AndroidManifest(下面简称manifest)。

看日志文件里面有相应的log信息,如下:

Exception in thread "main" brut.androlib.AndrolibException: Multiple resources:
spec=0x7f0b000e dimen/poster_imageview_width, config=-v13
        at brut.androlib.res.data.ResConfig.addResource(ResConfig.java:65)
        at brut.androlib.res.data.ResConfig.addResource(ResConfig.java:58)
        at brut.androlib.res.decoder.ARSCDecoder.readEntry(ARSCDecoder.java:196)

        at brut.androlib.res.decoder.ARSCDecoder.readConfig(ARSCDecoder.java:165
)
        at brut.androlib.res.decoder.ARSCDecoder.readType(ARSCDecoder.java:130)
        at brut.androlib.res.decoder.ARSCDecoder.readPackage(ARSCDecoder.java:10
5)
        at brut.androlib.res.decoder.ARSCDecoder.readTable(ARSCDecoder.java:82)
        at brut.androlib.res.decoder.ARSCDecoder.decode(ARSCDecoder.java:48)
        at brut.androlib.res.AndrolibResources.getResPackagesFromApk(AndrolibRes
ources.java:315)
        at brut.androlib.res.AndrolibResources.loadMainPkg(AndrolibResources.jav
a:50)
        at brut.androlib.res.AndrolibResources.getResTable(AndrolibResources.jav
a:43)
        at brut.androlib.Androlib.getResTable(Androlib.java:44)
        at brut.androlib.ApkDecoder.getResTable(ApkDecoder.java:148)
        at brut.androlib.ApkDecoder.decode(ApkDecoder.java:98)
        at brut.apktool.Main.cmdDecode(Main.java:120)
        at brut.apktool.Main.main(Main.java:57)
           

使用第三方的反编译工具,提示反编译失败,不能提取出manifest文件,后来看网上也有不少人提到这个问题,但是没有什么解决办法。

后来尝试从google官网下载最新的apktool工具,再次测试,发现成功反编译出了文件。呵呵,看来任何工具都要与时俱进啊。