0

У меня есть простой тестAndroid robolectric тесты манифеста вопрос слияния (андроида библиотека маяком)

@Config(constants = BuildConfig.class) 
@RunWith(RobolectricGradleTestRunner.class) 
public class BaseTest { 

    @Test 
    public void startEverTestSugarAppAsFirst() { 
     BeaconManager.setsManifestCheckingDisabled(true); 
    } 

} 

К сожалению бегун хиты manifestmerger выпуск

java.lang.RuntimeException: org.altbeacon. beacon.BeaconManager $ ServiceNotDeclaredException: BeaconService не объявлен должным образом в AndroidManifest.xml. Если с помощью Eclipse, пожалуйста, убедитесь, что ваш project.properties имеет manifestmerger.enabled = истинный

в org.robolectric.RobolectricTestRunner $ 2.evaluate (RobolectricTestRunner.java:256) в org.robolectric.RobolectricTestRunner.runChild (RobolectricTestRunner.java:193) на org.robolectric.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.java:288) в org.junit.runners.ParentRunner.access $ 000 (ParentRunner.java:58) в org.junit.runners.ParentRunner $ 2.оценить (ParentRunner.java:268) в org.robolectric.RobolectricTestRunner $ 1.оценить (RobolectricTestRunner. Java: 159) в org.junit.runners.ParentRunner.run (ParentRunner.java:363) при org.junit.runner.JUnitCore.run (JUnitCore.java:137) в com.intellij.junit4.JUnit4IdeaTestRunner. startRunnerWithArgs (JUnit4IdeaTestRunner.java:69) на com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart (JUnitStarter.java:234) на com.intellij.rt.execution.junit.JUnitStarter.main (JUnitStarter. java: 74) at sun.reflect.NativeMethodAccessorImpl.invoke0 (собственный метод) на sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62) на sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43) в java.lang.reflect.Method.invoke (Method.java:497) в com.intellij.rt.execution.application.AppMain.main (AppMain.java:144) причиненном: org.altbeacon.beacon.BeaconManager $ ServiceNotDeclaredException: BeaconService не должным образом объявлено в AndroidManifest.xml. Если с помощью Eclipse, пожалуйста, убедитесь, что ваш project.properties имеет manifestmerger.enabled = истина в org.altbeacon.beacon.BeaconManager.verifyServiceDeclaration (BeaconManager.java:786) в org.altbeacon.beacon.BeaconManager. (BeaconManager. Java: 252) на org.altbeacon.beacon.BeaconManager.getInstanceForApplication (BeaconManager.java:244) в com.lucyapp.client.Client.onCreate (Client.java:67) при org.robolectric.internal.ParallelUniverse .setUpApplicationState (ParallelUniverse.java:164) на org.robolectric.RobolectricTestRunner.setUpApplicationState (RobolectricTestRunner.java:421) на org.robolectric.RobolectricTestRun нер $ 2.evaluate (RobolectricTestRunner.java:252) ... 18 более

Интересно, есть ли простая работа вокруг.Я шел через тестовую папку библиотеки андроида радиомаяка и

BeaconManager.setsManifestCheckingDisabled(true); 

не помогает

+0

Где вы размещаете эту строку? Это именно то, что я делаю, чтобы обойти эту проблему. – davidgyoung

+0

Первая строка теста (такая же, как в тестовом пакете библиотеки). Это на верху моего вопроса. – speedingdeer

+0

Считаете ли вы, что это может быть ошибка, которая должна быть представлена ​​в новой проблеме github? – speedingdeer

ответ

0

Как-то BeaconManager строится до того вызов BeaconManager.setsManifestCheckingDisabled(true); Хитрость заключается в том, чтобы выяснить, куда положить, что так что он сначала выполняется.

Глядя на трассировку стека, я вижу, что BeaconManager получает построен из com.lucyapp.client.Client.onCreate на линии 67:

... 
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)

+0

Я подозревал то же самое. Клиент - приложение для Android. Казалось, мне нужно немного реорганизовать мой код, чтобы он работал. Если я отключу проверку манифеста в коде (просто для проверки), я получаю еще одну ошибку в RangeNotifier. Вернусь сюда, если у меня есть что-то новое. – speedingdeer

Смежные вопросы