重签名问题:does not have a signature matching

时间:2022-08-26 15:24:46
今天在家里电脑重签名过的apk拿到公司来用装到模拟器上,运行Robotium测试用例时,报了如下错误,原本以为是工程里的activity名称和包名写错了呢,检查了一遍发现木有错误呀。。。。
好吧,那我重新签名总可以吧,又用re-sign.jar重签名了一次,然后重装,报错依旧,没有解决问题。。。
只能问伟大的度娘了,终于解决了,现记录如下:
【错误】:
[2015-01-05 15:12:57 - WdjRobotiumTest] Test run failed: Permission Denial: starting instrumentation ComponentInfo{com.example.test.test/android.test.InstrumentationTestRunner} from pid=1617, uid=1617 not allowed because package com.example.test.test does not have a signature matching the target com.wandoujia.phoenix2
【原因】:
eclipse下配置的Default debug keystore与系统默认keystore的不一致;
使用eclipse执行代码时会用eclipse内配置的keystore去签名你的测试apk;
而使用重签名工具re-sign.jar进行重签名时,使用的是C盘下面的keystore去签名,这样活导致两者签名不一致导致上诉错误;
【解决方案】:
我的C盘下:C:\Users\Administrator\.android\没有debug.keystore文件,所以我把eclipse里配置的路径下的文件拷贝到了C盘下;
重新运行,问题解决了~~
总之,
只要把eclipse的默认keystore与C:\Users下的一致就行了;
eclipse配置路径:
window->Prefrences->Android->Build下:Default debug keystore设置成C:\Users\Administrator\.android\debug.keystore