浏览 4831 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2012-05-18
上网搜索,这个问题的解决方案很多。但都不能解决我现在的问题。 logcat里面的情况是这样的: 引用 W/PackageParser(59): Exception reading res/drawable-mdpi/ic_launcher.png in /data/app/vmdl55069.tmp W/PackageParser(59): java.lang.SecurityException: META-INF/MANIFEST.MF has invalid digest for res/drawable-mdpi/ic_launcher.png in /data/app/vmdl55069.tmp W/PackageParser(59): ... E/PackageParser(59): Package com.Afdaf has no certificates at entry res/drawable-mdpi/ic_launcher.png; ignoring! 于是将apk中的MANIFEST.MF取出来,根据上面错误“META-INF/MANIFEST.MF has invalid digest for res/drawable-mdpi/ic_launcher.png”,找到: 引用 Name: res/drawable-mdpi/ic_launcher.png SHA1-Digest: 4ss2KZ3FzkmfE6HAAsVu0aJKx1U= 按照错误的提示,猜测问题的关键是这个png图片的SHA1-Digest不正确了。 于是自己写测试代码生成png图片的SHA1-Digest,看看对不对。代码如下: public static void main(String[] args) throws NoSuchAlgorithmException, Exception { MessageDigest md = MessageDigest.getInstance("sha-1"); FileInputStream in = new FileInputStream("./ic_launcher.png"); int bytes = 0; while ((bytes = in.read()) != -1) { md.update((byte)bytes); } in.close(); byte[] thedigest = md.digest(); System.out.println(Base64Encoder.encode(thedigest)); } 测试ic_launcher.png结果是“sjmKOs4BYDXg7COdeTc8tIfPBR0=”,确实与MANIFEST.MF文件中的不相符。 测试apk中的其他图片,SHA1-Digest则一致。 所以,可以猜测问题就是这里了,为什么ADT打包生成的SHA1-Digest会错误的呢?是不是bug? 这个问题搞不清了。因为无法访问官网,无法发帖求印证、提bug,所以到这边来把问题提出来,看有没有同学遇到类似问题? 对了,附件是个zip,当中有两个文件:1、ic_launcher.png 2、某网友apk 同学们可以测试,只要把该图片(附件中)放在res相关目录中,导出apk,安装时候就出此问题。 另外有网友发他的apk(附件中)给我,他说他测试发现没有问题。我表示怀疑,因为他的apk中的digest也是错误的,并且我测试有同样问题。同样请热心tx帮忙测试以求印证。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |