在用2.4
更新robolectric后我得到错误的Stacktrace任何解决方案?
java.lang.RuntimeException: java.lang.IllegalArgumentException: Missing required <application/> element in .\..\google-play-services_lib\AndroidManifest.xml
at org.robolectric.RobolectricTestRunner$2.evaluate(RobolectricTestRunner.java:226)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
at org.robolectric.RobolectricTestRunner$1.evaluate(RobolectricTestRunner.java:158)
at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:459)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:675)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192)
Caused by: java.lang.IllegalArgumentException: Missing required <application/> element in .\..\google-play-services_lib\AndroidManifest.xml
at org.robolectric.AndroidManifest.parseAndroidManifest(AndroidManifest.java:155)
at org.robolectric.AndroidManifest.getPackageName(AndroidManifest.java:474)
at org.robolectric.AndroidManifest.getResourcePath(AndroidManifest.java:517)
at org.robolectric.AndroidManifest.getIncludedResourcePaths(AndroidManifest.java:522)
at org.robolectric.AndroidManifest.getIncludedResourcePaths(AndroidManifest.java:524)
at org.robolectric.RobolectricTestRunner.createAppResourceLoader(RobolectricTestRunner.java:635)
at org.robolectric.RobolectricTestRunner.getAppResourceLoader(RobolectricTestRunner.java:627)
at org.robolectric.internal.ParallelUniverse.setUpApplicationState(ParallelUniverse.java:67)
at org.robolectric.RobolectricTestRunner.setUpApplicationState(RobolectricTestRunner.java:440)
at org.robolectric.RobolectricTestRunner$2.evaluate(RobolectricTestRunner.java:222)
... 16 more
答案 0 :(得分:3)
这是Roboletric 2.4会检查库项目的标签。
您可以参考以下官方链接:https://github.com/robolectric/robolectric/pull/1309
它有解决此问题的解决方法。
答案 1 :(得分:0)
作为一种解决方法,我们需要在项目中扩展org.robolectric.AndroidManifest,删除对元素的检查,并在自定义测试运行器中覆盖createAppManifest(...)。