i wanna test GPS on my android emulator but i find my apps has Error "Stopped Unexpectedly" when i try to run its on emulator.
here some sort of my codes
AndroidManifest.xml
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
and 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);
}
import on my 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;
would you tell me why my apps getting error "stopped unexpectedly" when i try to run its on my emulator ?
thanks for helping me :)
Error from tracing : "java.lang.NullPointerException"
i have been using DDMS to set long and lat to this:
long: 112.8010100
lat : -7.2950700
You can mock the location in the emulator
Providing Mock Location Data
As you develop your application, you'll certainly need to test how well
your model for obtaining user location works. This is most easily done
using a real Android-powered
device. If, however, you don't have a device, you can still test your
location-based features by mocking location data in the Android emulator.
There are three different ways to send your application mock location data:
using Eclipse, DDMS, or the "geo" command in the emulator console.
Note: Providing mock location data is injected as GPS location data,
so you must request location updates from GPS_PROVIDER in order for mock
location data to work.
Using 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.)
Using DDMS
With the DDMS tool, you can simulate location data a few different ways:
Manually send individual longitude/latitude coordinates to the device.
Use a GPX file describing a route for playback to the device.
Use a KML file describing individual place marks for sequenced
playback to the device.
For more information on using DDMS to spoof location data, see Using DDMS.
Using the "geo" command in the emulator console
To send mock location data from the command line:
Launch your application in the Android emulator and open a terminal/console
in your SDK's /tools directory.
Connect to the emulator console:
telnet localhost
Send the location data:
geo fix to send a fixed geo-location.
This command accepts a longitude and latitude in decimal degrees, and
an optional altitude in meters. For example:
geo fix -121.45356 46.51119 4392
geo nmea to send an NMEA 0183 sentence.
This command accepts a single NMEA sentence of type '$GPGGA' (fix data) or
'$GPRMC' (transit data). For example:
geo nmea $GPRMC,081836,A,3751.65,S,14507.36,E,000.0,360.0,130998,011.3,E*62
For information about how to connect to the emulator console, see Using the
Emulator Console.