2013-03-19 63 views
5

我想为我的android应用程序安装robolectric。 我的主代码有一个子模块和一个外部库,我不使用Maven。java.lang.IllegalStateException:必须有一些重叠的resourceIdToResName

steps设置一个robolectric项目,当我尝试运行测试它提供了以下错误

java.lang.IllegalStateException: there must have been some overlap for resourceIdToResName! expected 3014 but got 3013 
    at org.robolectric.res.MergedResourceIndex.merge(MergedResourceIndex.java:20) 
    at org.robolectric.res.MergedResourceIndex.<init>(MergedResourceIndex.java:12) 
    at org.robolectric.res.RoutingResourceLoader.<init>(RoutingResourceLoader.java:22) 
    at org.robolectric.RobolectricTestRunner.createAppResourceLoader(RobolectricTestRunner.java:631) 
    at org.robolectric.RobolectricTestRunner.getAppResourceLoader(RobolectricTestRunner.java:614) 
    at org.robolectric.internal.ParallelUniverse.setupApplicationState(ParallelUniverse.java:35) 
    at org.robolectric.RobolectricTestRunner.setupApplicationState(RobolectricTestRunner.java:414) 
    at org.robolectric.RobolectricTestRunner$2.evaluate(RobolectricTestRunner.java:297) 
    at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:263) 
    at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:68) 
    at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:47) 
    at org.junit.runners.ParentRunner$3.run(ParentRunner.java:231) 
    at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:60) 
    at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:229) 
    at org.junit.runners.ParentRunner.access$000(ParentRunner.java:50) 
    at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:222) 
    at org.robolectric.RobolectricTestRunner$1.evaluate(RobolectricTestRunner.java:241) 
    at org.junit.runners.ParentRunner.run(ParentRunner.java:300) 
    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:467) 
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683) 
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390) 
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197) 

谁能帮我了吧!它试图从两个来源合并resourceIdToResName的地图,这些来源是什么?

感谢

+0

有人知道这一点。相同的错误 – SaKet 2013-04-12 01:26:34

+0

我也有这个错误! – Martin 2013-05-18 13:24:24

+0

[This](https://github.com/robolectric/robolectric/issues/618)可能会帮助你 – Thrakbad 2013-10-09 14:46:11

回答

1

此问题可能是由一些在你的主要项目res文件夹,可能是一个布局的xml文件造成的。

分析这个从res文件夹中删除文件,直到测试项目运行。编译主项目中的错误,同时通过实验性地删除res文件来查找错误文件不会停止测试项目的运行,但必须不存在阻止R.java生成的资源错误。

我的问题是在布局文件中的错误如下:

<TextView android:id="@+android:id/actualValue" 

更改为

<TextView android:id="@+id/actualValue" 

后,一切都正常工作。

相关问题