2017-09-06 188 views
-6

好了,所以我是用从GPS.class该GPS位置,我不断收到空对象引用,并不能肯定why.Here是我的代码:的Android空对象引用

boolean permissionGranted = ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED; 

    if(permissionGranted) 
    { 
     if (GPS.sharedInstance(AppDashboard.this).canGetLocation() && GPS.sharedInstance(this).isPermissionEnabled()) { 
      double lat = GPS.sharedInstance(AppDashboard.this).getLatitude(); 
      double lon = GPS.sharedInstance(AppDashboard.this).getLongitude(); 
      Log.e(TAG, "Location: " + lat + "/"+ lon); 
     } 
     else 
     { 
      Log.e(TAG, "Can't get GPS locations"); 
     } 
    } else { 
     ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.ACCESS_FINE_LOCATION}, 200); 
    } 

我的清单:

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> 
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> 
<uses-feature android:name="android.hardware.location.gps" /> 

我的logcat:

Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'double android.location.Location.getLatitude()' on a null object reference 
at com.gpsApp.utility.GPS.getLatitude(GPS.java:113) 

和GPS类113

public double getLatitude() { 
    if (_locationManager != null) { 
     _latitude = _location.getLatitude(); 
    } 

    return _latitude; 
} 
+0

在哪一行你得到空对象引用? 请添加一些堆栈跟踪。 –

+0

你可以发布你的'com.gpsApp.utility.GPS.java'类吗? '_location'变量在哪里以及如何初始化? – pleft

回答

0

您从GPS类调​​用public double getLatitude(),但是_location变量没有被初始化,因此你得到的NullPointerException异常。

致电getLatitude()尝试拨打您的GPS课程中的public Location getLastKnownLocation()。此调用将初始化_location变量。

0

使用此行

boolean permissionGranted = ActivityCompat.checkSelfPermission(getApplicationContext, Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED; 

取而代之的是

boolean permissionGranted = ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED; 
+0

问题不在于这条线,它是与GPS线113。 – Jayce

相关问题