1

テストするとき、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)
4

1 に答える 1

4

In a testは、テストInstrumentation.getContext()のコンテキストを返します。テスト中のアプリのコンテキストにアクセスするには、代わりに呼び出す必要があります。の使用も検討する必要があります。これは、インスタンスの優先アクセス ポイントになりました。Instrumentation.getTargetContext()InstrumentationRegistryInstrumentation

于 2016-02-03T23:56:42.460 に答える