我在使用Jenkins构建和安装我的Android测试项目时遇到问题(实际错误请向下翻页)。
我在Eclipse中创建了一个简单的Android项目和相应的测试项目。我已经执行了以下操作:
android update project -p App1
android update test-project -m ../App1 -p App1Test
我可以在Eclipse中运行测试项目,构建项目,在AVD上安装(已经运行)并正确执行。
此外,我可以从命令行成功执行以下操作:
D:> adb uninstall com.ss
(从AVD中删除App1(如果已安装)
D:workspaceApp1> ant clean debug
然后
D:workspaceApp1Test> ant all clean debug install test
同样,App1-test-debug.apk和App1-debug.apk被构建并安装在AVD上,测试被执行。
问题是当我试图用詹金斯来做这件事的时候。
我创造了2个工作岗位:
- App1-蚂蚁目标:
clean debug
- App1测试蚂蚁目标:
all clean debug install test
App1Test配置为在成功生成App1之后运行。
App1作业正确运行,创建App1-debug.apk.
App1Test出现,以便在安装任务之前正确运行。创建了App1-debug.apk和App1Test-debug.apk,但INSTALL
任务中存在错误:
安装:[echo]将D:\Jenkins\workspace\App1Test\bin\App1Test-debug.apk安装到默认值模拟器或设备。。。[exec]pkg:/data/local/tmp/App1Test-debug.apk[exec]失败[INSTALL_PARSE_FAILED_INCONSISTENT_CERTICATES][exec]40 KB/s(0.343s中的14127字节)
-设置模式检查:
-设置调试文件:
安装:[echo]正在将D:\Jenkins\workspace\App1\bin\App1-debug.apk安装到默认模拟器或设备上。。。[exec]pkg:/data/local/tmp/App1-debug.apk[exec]成功[exec]433 KB/s(13883字节,0.031s)
installd:
-测试项目检查:
测试:[echo]正在运行测试。。。[exec]INSTRUMENTATION_STATUS:id=ActivityManagerService[exec]INSTRUMENTATION_STATUS:错误=拒绝权限:启动检测ComponentInfo{com.ss.test/android.test.IInstrumentationTestRunner}来自pid=2520,uid=2520不允许,因为包com.ss.test不允许具有与目标com.ss匹配的签名[exec]INSTRUMENTATION_STATUS_CODE:-1[exec]java.lang.SecurityException:拒绝权限:启动检测ComponentInfo{com.ss.test/android.test.IInstrumentationTestRunner}来自pid=2520,uid=2520不允许,因为包com.ss.test不允许具有与目标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...
我跟随詹金斯:构建和测试一个Android应用程序,只有一个例外。如果我使用,我就无法构建测试项目
tested.project.dir=
属性。我只是在项目ant.properties
文件中设置了正确的值,并提交给SVN:
tested.project.dir=../App1
(当然这不是问题的原因,但最好记录下来)。
我真的为这件事伤透了脑筋,如果有人能帮助我恢复理智,就会有大爱向你走来。
使用:android-sdk-16
SVN-
ant 1.8
Eclipse Indigo
已解决。。。。
测试apk必须使用不同的密钥库安装在设备上(不确定如何安装)。
因此,通过执行:
adb uninstall com.ss.test
新的测试apk安装良好。