我想在我的Android模拟器上测试GPS,但是当我尝试在模拟器上运行时,我发现我的应用程序有错误“意外停止”。
这里有一些我的代码 的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" />
和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: 长:112.8010100 lat:-7.2950700
答案 0 :(得分:2)
您可以在模拟器中模拟位置
在开发应用程序时,您肯定需要测试一下 获取用户位置的模型有效。这是最容易完成的 使用真正的Android驱动 设备。但是,如果您没有设备,您仍然可以测试您的设备 基于位置的功能,通过在Android模拟器中模拟位置数据。 发送应用程序模拟位置数据有三种不同的方法: 在模拟器控制台中使用Eclipse,DDMS或“geo”命令。
注意:提供模拟位置数据作为GPS位置数据注入, 所以你必须从GPS_PROVIDER请求位置更新才能进行模拟 位置数据工作。
使用Eclipse
选择窗口&gt;显示视图&gt;其他&gt;仿真器控制。
在“模拟器控制”面板中,输入GPS坐标 在位置控制下作为单独的纬度/经度坐标, 用于路由回放的GPX文件或用于的KML文件 多个地方标记。 (确保选择了设备 在“设备”面板中 - 可从Window&gt;获得显示视图&gt;其他&gt;设备)。
使用DDMS
使用DDMS工具,您可以通过几种不同的方式模拟位置数据:
手动将单独的经度/纬度坐标发送到设备。 使用描述要回放到设备的路由的GPX文件。 使用描述序列的单个位置标记的KML文件 播放到设备。 有关使用DDMS欺骗位置数据的更多信息,请参阅使用DDMS。
在模拟器控制台中使用“geo”命令
从命令行发送模拟位置数据:
在Android模拟器中启动您的应用程序并打开终端/控制台 在SDK的/ tools目录中。 连接到模拟器控制台: telnet localhost 发送位置数据: geo fix发送固定的地理位置。 此命令接受十进制度数的经度和纬度 可选的海拔高度(米)。例如: geo fix -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 有关如何连接到模拟器控制台的信息,请参阅使用 模拟器控制台。