アンドロイド - エミュレータのGPSテストエラー

私はアンドロイドエミュレータでGPSをテストしたいと思いますが、エミュレータで実行しようとすると、アプリにエラーが「予期せず停止しました」と表示されます。

ここで私のコードのいくつかの並べ替え AndroidManifest.xml




とmain.java

public void onCreate(Bundle savedInstanceState){
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    LocationManager locationManager;
    String context = Context.LOCATION_SERVICE;
    locationManager = (LocationManager)getSystemService(context);

    String provider = LocationManager.GPS_PROVIDER;
    Location location = locationManager.getLastKnownLocation(provider);
    updateWithNewLocation(location);
}

private void updateWithNewLocation(Location location){
    String latLongString;
    TextView myLocationText;
    myLocationText = (TextView)findViewById(R.id.myLocationText);
    if(location != null){
        double lat = location.getLatitude();
        double lng = location.getLongitude();
        latLongString = "Lat:" + lat + "\nLong:" + lng;
    }else{
        latLongString = "No location found";
    }
    myLocationText.setText("Your Current Position is: \n" + latLongString);
}

私のmain.javaでインポート

import android.app.Activity;
import android.content.Context;
import android.location.Location;
import android.location.LocationManager;
import android.os.Bundle;
import android.widget.TextView;

あなたは私のエミュレータ上でそれを実行しようとすると、なぜ私のアプリがエラーを "予期せず停止"になったのか教えていただけますか?

私を助けてくれてありがとう :)

トレースエラー: "java.lang.NullPointerException" 私はDDMSを使用して、これにlongとlatを設定しています: long:112.8010100 緯度:-7.2950700

3
エラーのためにスタックトレースを提供する方が優れています。
追加された 著者 user370305,

1 答え

エミュレータで場所をモックできます

モックロケーションデータの提供

アプリケーションを開発するには、確かにどれくらいうまくテストする必要があります ユーザーの場所を取得するためのモデルが動作します。これは最も簡単に行われます 実際のAndroid搭載の デバイス。ただし、デバイスがない場合は、 Androidエミュレータで位置データを嘲笑することで、位置情報に基づく機能を提供します。 アプリケーションモックロケーションデータを送信する3つの方法があります: エミュレータコンソールでEclipse、DDMS、または "geo"コマンドを使用します。

Note: モックロケーションデータの提供 is injected as GPS location data, so you must request location updates from GPS_PROVIDER in order for mock location data to work.

Eclipseを使用する

Select Window > Show View > Other > Emulator Control.

In the Emulator Control panel, enter GPS coordinates under Location Controls as individual lat/long coordinates, with a GPX file for route playback, or a KML file for multiple place marks. (Be sure that you have a device selected in the Devices panel—available from Window > Show View > Other > Devices.)

DDMSの使用

DDMSツールを使用すると、位置データをいくつかの方法でシミュレートできます。

個々の経度/緯度座標を手動でデバイスに送信する。 デバイスへの再生ルートを記述するGPXファイルを使用します。 シーケンスされた個々のプレースマークを記述するKMLファイルを使用する デバイスへの再生。 DDMSを使用してロケーションデータをスプーフィングする方法の詳細については、「DDMSの使用」を参照してください。

エミュレータコンソールで「geo」コマンドを使用する

コマンドラインからモックロケーションデータを送信するには:

Androidエミュレータでアプリケーションを起動し、端末/コンソールを開きます  あなたのSDKの/ toolsディレクトリにあります。 エミュレータコンソールに接続します。 telnet localhost 位置情報を送信する: 固定ジオロケーションを送信するようにジオフィックスします。 このコマンドは、経度と緯度を10進数で受け入れます。  オプションの標高(メートル)。例えば: ジオフィックス-121.45356 46.51119 4392 geo nmeaはNMEA 0183文を送信します。 このコマンドは、 '$ GPGGA'タイプの単一のNMEA文(データの修正)または '$ GPRMC'(中継データ)。例えば: geo nmea $ GPRMC、081836、A、3751.65、S、14507.36、E、000.0,360.0,130998,011.3、E * 62 エミュレータコンソールに接続する方法については、「 エミュレータコンソール。

2
追加された
追加された 著者 MKJParekh,
おかげで、助けてくれてありがとうが、問題は私がエミュレータで私のアプリケーションを実行しようとするとエラーが発生する "予期せず停止"
追加された 著者 DevYudh,