安卓机器人测试清单合并问题(安卓信标库)



我有一个简单的测试用例

@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) 之前调用它

最新更新