Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/389.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么是mMap.addMarker(…)和map.getMyLocation();不工作并停止我的android应用程序?_Java_Android_Api_Android Studio_Google Maps - Fatal编程技术网

Java 为什么是mMap.addMarker(…)和map.getMyLocation();不工作并停止我的android应用程序?

Java 为什么是mMap.addMarker(…)和map.getMyLocation();不工作并停止我的android应用程序?,java,android,api,android-studio,google-maps,Java,Android,Api,Android Studio,Google Maps,在sqlite中,同样的方法可以工作,但我将数据库更改为Mysql,这种方法不工作 我从AsyncTask发送arraylist(名称)以在MapsActivity中显示方法 以及在ligne中的问题 myLocation=mMap.getMyLocation(); 和 mMap.addMarker(新的MarkerOptions().position(dz).title(“欢迎使用”)).showInfoWindow() 公共类MapsActivity扩展了FragmentActivity在M

在sqlite中,同样的方法可以工作,但我将数据库更改为Mysql,这种方法不工作

我从AsyncTask发送arraylist(名称)以在MapsActivity中显示方法 以及在ligne中的问题
myLocation=mMap.getMyLocation(); 和 mMap.addMarker(新的MarkerOptions().position(dz).title(“欢迎使用”)).showInfoWindow()

公共类MapsActivity扩展了FragmentActivity在MapreadyCallback上的实现{
公共空标(双纬度、双经度){
LatLng dz=新LatLng(纬度、经度);
mMap.addMarker(新的MarkerOptions().position(dz).title(“欢迎使用”)).showInfoWindow();
mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(dz,16));
}
公共浮动距离(双纬度、双经度){
浮动结果[]=新浮动[10];
Location myLocation=mMap.getMyLocation();
双mylatitude=myLocation.getLatitude();
Double mylongitude=myLocation.getLongitude();
myLocation.distanceBetween(我的纬度、我的经度、纬度、经度、结果);
返回结果[0];
}
公共无效显示(ArrayList名称){
ArrayList arrList=新的ArrayList();
arrList=名称;
int c=arrList.size();
浮动t[]=新浮动[10];
双连[]=新双连[3];
如果(c>0){
int n=0;
int i=0;
而(c>0){
双纬度=Double.valueOf(arrList.get(n));
双经度=Double.valueOf(arrList.get(n+1));
Double price=Double.valueOf(arrList.get(n+2));
t[i]=之间的距离(纬度、经度);
如果(n==0){
公司[0]=纬度;
公司[1]=经度;
公司[2]=价格;
}
if((i>0)&(t[i]对于(i=0;i问题的原因似乎是因为getMyLocation()为null,并且算法希望它不为null。请确保此对象包含值。您可以使用此代码检查用户的最后位置:

LocationManager service = (LocationManager) 

getSystemService(LOCATION_SERVICE);
Criteria criteria = new Criteria();
String provider = service.getBestProvider(criteria, false);
Location location = service.getLastKnownLocation(provider);
LatLng userLocation = new LatLng(location.getLatitude(),location.getLongitude());

希望此信息对您的项目有所帮助并祝您好运!

问题的原因似乎是因为getMyLocation()为null,并且算法希望它不为null。请确保此对象包含值。您可以使用此代码检查用户的上一个位置:

LocationManager service = (LocationManager) 

getSystemService(LOCATION_SERVICE);
Criteria criteria = new Criteria();
String provider = service.getBestProvider(criteria, false);
Location location = service.getLastKnownLocation(provider);
LatLng userLocation = new LatLng(location.getLatitude(),location.getLongitude());

希望这些信息对您的项目有所帮助并祝您好运!

请包含应用程序stopping.java.lang.NullPointerException的堆栈跟踪:尝试调用虚拟方法'android.location.location.com.google.android.gms.maps.GoogleMap.getMyLocation()'在com.example.mapproject.MapsActivity.distanceBetween(MapsActivity.java:156)com.example.mapproject.MapsActivity.show(MapsActivity.java:184)com.example.mapproject.Parser2.onPostExecute(Parser2.java:43)com.example.mapproject.Parser2.onPostExecute(Parser2.java:13)的空对象引用上请包括应用程序stopping.java.lang.NullPointerException的堆栈跟踪:尝试在com.example.mapproject.MapsActivity.DistanceBeen(MapsActivity.java:156)的空对象引用上调用虚拟方法“android.location.com.google.android.gms.maps.GoogleMap.getMyLocation()”在com.example.mapproject.mapsacitivity.show(mapsacitivity.java:184)在com.example.mapproject.Parser2.onPostExecute(Parser2.java:43)在com.example.mapproject.Parser2.onPostExecute(Parser2.java:13)上