我遇到了使用Jenkins構建和安裝我的Android測試項目(下載實際錯誤的頁面)的問題。使用Jenkins在AVD上安裝Android測試應用程序的證書不匹配問題
我在Eclipse中創建了一個簡單的Android項目和相應的測試項目。我已經執行以下:
android update project -p App1
android update test-project -m ../App1 -p App1Test
我可以在Eclipse中運行測試項目,這些項目建設,安裝在AVD(運行),並正確執行。
另外,我可以執行的命令行成功以下:
D:\> adb uninstall com.ss
(如果已經安裝了它從AVD除去應用1)
D:\workspace\App1> ant clean debug
然後
D:\workspace\App1Test> ant all clean debug install test
再次,App1-test-debug.apk和App1-debug.apk被構建並安裝在AVD上,測試被執行。
問題是當我試圖用詹金斯做到這一點。
我創建2個職位:
- 應用1 - Ant目標:
clean debug
- App1Test - Ant目標:
all clean debug install test
App1Test配置應用1構建成功後運行。
App1作業運行正常,創建App1-debug.apk。
App1Test 出現直到安裝任務正常運行。 App1的-debug.apk和App1Test-debug.apk創建,但是在INSTALL
任務的錯誤:
安裝: [回波]安裝d:\詹金斯\工作空間\ App1Test \ BIN \ App1Test -debug.apk到默認 模擬器或設備... [EXEC] PKG:/data/local/tmp/App1Test-debug.apk [EXEC]失敗[INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES] [EXEC] 40字節/秒(14127個字節0.343s)
-set-mode-check:
-set-調試文件:
安裝: [回波]安裝d:\詹金斯\工作空間\ App1的\ BIN \ App1的-debug.apk到默認模擬器或設備... [EXEC] PKG:/ data/local/tmp/App1-debug.apk [exec]成功 [exec] 433 KB/s(13883 bytes in 0。031s)
INSTALLD:
- 測試項目檢查:
測試: [迴音]運行測試... [執行] INSTRUMENTATION_STATUS:ID = ActivityManagerService [執行] INSTRUMENTATION_STATUS:錯誤= Permission Denial:啓動工具 ComponentInfo {com.ss.test/android.test.InstrumentationTestRunner} from pid = 2520,uid = 2520不允許,因爲package com.ss.test不是 的簽名與目標com匹配。 ss [exec] INSTRUMENT ATION_STATUS_CODE:-1 [exec] java.lang.SecurityException:Permission Denial:starting instrumentation ComponentInfo {com.ss.test/android.test.InstrumentationTestRunner} from pid = 2520,uid = 2520不允許,因爲package com.ss 。測試沒有 具有匹配目標籤名com.ss
我明白App1和App1Test都需要使用相同的證書,在這種情況下應該是一樣的調試證書籤署。爲什麼每個項目都會使用不同的證書?
完整的日誌顯示,這兩個的APK與調試證書籤署:
-package:
[apkbuilder] Current build type is different than previous build: forced apkbuilder run.
[apkbuilder] Creating App1-debug-unaligned.apk and signing it with a debug key...
和:
-package:
[apkbuilder] Current build type is different than previous build: forced apkbuilder run.
[apkbuilder] Creating App1Test-debug-unaligned.apk and signing it with a debug key...
我跟着Jenkins:Building and testing an Android app,但有一個例外。如果我在高級Ant部分使用了
tested.project.dir=
屬性,我無法獲得測試項目。我簡單地設置正確的值在項目ant.properties
文件,並承諾SVN:
tested.project.dir=../App1
(確保這不會造成問題,但最好雖然記錄它)。
我真的把我的頭髮撕掉了,如果有人能幫我重拾我的理智,就會有大愛來你的方式。
使用: Android的SDK-16
SVN
螞蟻1.8
Eclipse的靛藍