android进行单元测试时出现java.lang.RuntimeException: Unable to resolve activity for: Intent ……

来源:互联网 发布:软件开发人日单价 编辑:程序博客网 时间:2024/05/13 05:20
进行Android单元测试时,要测试一个用Intent传递数据启动的activity,却报

java.lang.RuntimeException: Unable to resolve activity for: Intent { flg=0x10000000 cmp=com.tk.test/.ResultActivity (has extras) }
at android.app.Instrumentation.startActivitySync(Instrumentation.java:371)
at android.test.InstrumentationTestCase.launchActivityWithIntent(InstrumentationTestCase.java:119)
at com.example.mactivitytest.test.ResultActivityTest.setUp(ResultActivityTest.java:31)
at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:169)
at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:154)
at android.test.InstrumentationTestRunner.onStart(InstrumentationTestRunner.java:529)
at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1448)

在网上找答案,很多都说是没有在被测试的项目的AndroidManifest声明activity,但是即使声明后仍然出现该问题。接着认为是android:targetPackage的路径写错,但检查后发现一切都正确。后来,打开测试项目的AndroidManifes发现问题所在。



我要测试的是com.tk.test中的ResultActivity,在被测项目中的AndroidManifest中的android:targetPackage是这样的


而在测试项目中AndroidManifest中的android:targetPackage是这样的:



在测试项目中的 launchActivityWithIntent函数原本如下


把第一个参数改为与在测试项目中AndroidManifest中的android:targetPackage一致



问题解决。网上还有人说是因为测试时忘记给activity添加数据,导致bundle是null,所以报错,大家可以参考一下。


0 0
原创粉丝点击