我有一个简单的测试用例
@Config(constants = BuildConfig.class)
@RunWith(RobolectricGradleTestRunner.class)
public class BaseTest {
@Test
public void startEverTestSugarAppAsFirst() {
BeaconManager.setsManifestCheckingDisabled(true);
}
}
不幸的是,跑步者遇到了宣言合并问题
java.lang.RuntimeException:org.altbeacons.beacon.BeaconsManager$ServiceNotDeclaredException:BeaconService未在AndroidManifest.xml中正确声明。如果使用Eclipse,请验证您的project.properties是否具有manifestmerge.enabled=真实
在org.roboelectric.RobolectricTestRunner$2.eevaluate(RobolectricTestRunner.java:256)在org.roboelectric.RobolectricTestRunner.runChild(RobolectricTestRunner.java:193)在org.roboelectric.RobolectricTestRunner.runChild(RobolectricTestRunner.java:56)网址:org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)org.junit.runners.ParentRunner.runChildren(ParentRunner:288)org.junit.runners.ParentRunner.access$000(ParentRunner:58),网址:org.junit.runners.ParentRunner$2.eevaluate(ParentRunner.java:268)org.roboelectric.RobolectricTestRunner$1.eevaluate(RobolectricTestRunner.java:159)网址:org.junit.runners.ParentRunner.run(ParentRunner:363)org.junit.runner.JUnitCore.run(JUnitCores.java:137)com.intellij.junit4.JUnit4DeaTestRunner.startRunnerWithArgs(JUnit4DieTestRunner.java:69)在com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:234)在com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:74)位于的sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)在java.lang.reflect.Method.ioke(Method.java:497)com.intellij.rt.execution.application.AppMain.main(AppMain.java:144)原因:org.altbeacons.beacon.BeaconsManager$ServiceNotDeclaredException:BeaconService未在AndroidManifest.xml中正确声明。如果使用Eclipse,请验证您的project.properties是否具有manifestmerge.enabled=trueorg.altbeacons.beacon.BeaconsManager.verifyServiceDeclaration(BeaconsManager.java:786)网址:org.altbeacons.beacon.BeaconsManager.(BeaconsManager.java:252)在org.altbeacons.beacon.BeaconsManager.getInstanceForApplication(BeaconsManager.java:244)网址:com.lucyapp.client.client.onCreate(client.java:67)org.roboelectric.internal.ParallelUniverse.setUpApplicationState(ParallelUniverses.java:164)在org.roboelectric.RobolectricTestRunner.setUpApplicationState(RobolectricTestRunner.java:421)在org.roboelectric.RobolectricTestRunner$2.评估(RobolectricTestRunner.java:252)…再增加18个
我想知道周围是否有简单的工作。我一直在浏览安卓信标库测试文件夹和
BeaconManager.setsManifestCheckingDisabled(true);
对没有帮助
不知何故,BeaconManager
是在调用BeaconManager.setsManifestCheckingDisabled(true);
之前构建的。诀窍是找出将该行放在哪里,以便首先执行。
查看堆栈跟踪,我看到BeaconManager
是从第67行的com.lucyapp.client.Client.onCreate
构造的:
...
org.altbeacon.beacon.BeaconManager.getInstanceForApplication(BeaconManager.java:244) at
com.lucyapp.client.Client.onCreate(Client.java:67)
...
知道了这一点,也许您可以找出可以将BeaconManager.setsManifestCheckingDisabled(true);
行放在哪里,以便在com.lucyapp.client.Client.onCreate(Client.java:67)
之前调用它