Программная установка genymotion gps во время тестирования вызывает SecurityException: неверное имя пакета при установке широты

При тестировании я устанавливаю lat long через Genymotion следующим образом:

 package com.mypackage.name;

 public class TestGps extends ActivityInstrumentationTestCase2<MyClass>{

    ... //setup just calls super.setup();

    public void testLocationButton(){
       Gps gps = GenymotionManager.getGenymotionManager(getInstrumentation().getContext()).getGps();
       gps.setStatus(Gps.Status.ENABLED);
       gps.setLatitude(40.7127); // the error happens here
       gps.setLongitude(74.0059);
   }
}

Я получаю следующую проблему при запуске:

java.lang.SecurityException: invalid package name: com.mypackage.name
at android.os.Parcel.readException(Parcel.java:1546)
at android.os.Parcel.readException(Parcel.java:1499)
at android.location.ILocationManager$Stub$Proxy.requestLocationUpdates(ILocationManager.java:582)
at android.location.LocationManager.requestLocationUpdates(LocationManager.java:867)
at android.location.LocationManager.requestLocationUpdates(LocationManager.java:490)
at com.genymotion.api.Gps.waitForTargetLocation(Gps.java:271)
at com.genymotion.api.Gps.setLatitude(Gps.java:134)

person alotofquestions    schedule 03.02.2016    source источник
comment
Используйте getTargetContext() вместо getContext().   -  person Code-Apprentice    schedule 04.02.2016


Ответы (1)


В тесте Instrumentation.getContext() возвращает контекст тестов. Чтобы получить доступ к контексту тестируемого приложения, вам нужно вместо этого вызвать Instrumentation.getTargetContext(). Вам также следует рассмотреть возможность использования InstrumentationRegistry. Теперь это предпочтительная точка доступа для Instrumentation экземпляров.

person Code-Apprentice    schedule 03.02.2016
comment
Проклятие! Это было быстро, и это сработало! И с этого момента я начну использовать InstrumentationRegistry. Большое спасибо! - person alotofquestions; 04.02.2016
comment
@alotofquestions Чтобы уточнить, InstrumentationRegistry доступен только в Библиотеке поддержки тестирования< /а>. - person Code-Apprentice; 04.02.2016