今天在家里電腦重簽名過的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