[英]NullPointerException on getting current location value (lat, lng) Google Maps
當我使用地圖片段時,我獲取當前位置的代碼正在工作,但是當我在另一個類中使用它而不顯示地圖時,我在 String 提供程序中收到 nullpointerException。 您能否檢查一下我的程序有什么問題,如果可能,請解釋為什么我會收到此錯誤。
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// TODO Auto-generated method stub
View v = inflater
.inflate(R.layout.layout_school_list, container, false);
lvList = (ListView) v.findViewById(R.id.lvSchools);
LocationManager locationManager = (LocationManager) getSystemService("location");
Criteria criteria = new Criteria();
String provider = locationManager.getBestProvider(criteria, true);
final Location currentLoc = locationManager
.getLastKnownLocation(provider);
if (currentLoc != null) {
onLocationChanged(currentLoc);
}
if (Distance==true){
double lat = currentLoc.getLatitude();
double lng = currentLoc.getLongitude();
ArrayList<Double> rangeList = getRangeList(lat, lng);
ArrayList<String> theList1 = new ArrayList<String>();
for (int count = 0; count < rangeList.size(); count++)
{
String temp = sTuition[count];
theTuitionFee = Integer.parseInt(temp);
for(int subloop=0; subloop<sSpecialty[count].length; subloop++) {
List<String> values = (List<String>)thisFilter[4];
if (rangeList.get(count) <= DistanceVal
&&sReg[count].equalsIgnoreCase((String)thisFilter[0])
&& sAdmin[count].equalsIgnoreCase((String)thisFilter[1])
&& sAmbience[count].equalsIgnoreCase((String)thisFilter[3])
&& amountTF >= theTuitionFee
&& filtered(sSpecialty[count][subloop], values)) {
theList1.add(sList[count]);
}
}
}
displayNearbyList(theList1);
}
這是我的方法:
public void onLocationChanged(Location location) {
double currentLat = location.getLatitude();
double currentLng = location.getLongitude();
}
並且 getSystemService 出現錯誤,我的 IDE 需要我把這個
private LocationManager getSystemService(String string) {
// TODO Auto-generated method stub
return null;
}
在我的其他工人階級中沒有使用過。
這是我的堆棧跟蹤。 我是新來的,所以我不知道如何正確發布堆棧跟蹤
08-29 12:14:45.017: E/AndroidRuntime(6864): 致命異常: main 08-29 12:14:45.017: E/AndroidRuntime(6864): java.lang.NullPointerException 08-29 12.017:455 E/AndroidRuntime(6864): at capstone.app.recommender.SchoolListFragmentFilter.onCreateView(SchoolListFragmentFilter.java:67) 08-29 12:14:45.017: E/AndroidRuntime(6864): at android.support.v4.app.Fragment .performCreateView(Fragment.java:1786) 08-29 12:14:45.017: E/AndroidRuntime(6864): at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:947) 08-29 12:14 :45.017: E/AndroidRuntime(6864): 在 android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1126) 08-29 12:14:45.017: E/AndroidRuntime(6864): 在 android.support。 v4.app.BackStackRecord.run(BackStackRecord.java:739) 08-29 12:14:45.017: E/AndroidRuntime(6864): at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1489) 08 -29 12:14:45.017: E/AndroidRuntime(6864): 在 android.support.v4.app.FragmentManagerImpl $1.run(FragmentManager.java:454) 08-29 12:14:45.017: E/AndroidRuntime(6864): at android.os.Handler.handleCallback(Handler.java:725) 08-29 12:14:45.017: E/AndroidRuntime(6864):在 android.os.Handler.dispatchMessage(Handler.java:92) 08-29 12:14:45.017:E/AndroidRuntime(6864):在 android.os.Looper.loop(Looper.java) :137) 08-29 12:14:45.017: E/AndroidRuntime(6864): 在 android.app.ActivityThread.main(ActivityThread.java:5041) 08-29 12:14:45.017: E/AndroidRuntime(6864):在 java.lang.reflect.Method.invokeNative(Native Method) 08-29 12:14:45.017: E/AndroidRuntime(6864): 在 java.lang.reflect.Method.invoke(Method.java:511) 08-29 12:14:45.017: E/AndroidRuntime(6864): 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793) 08-29 12:14:45.017: E/AndroidRuntime(6864):在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560) 08-29 12:14:45.017: E/AndroidRuntime(6864): 在 dalvik.system.NativeStart.main(Native Method)
你應該更換你的線路
LocationManager locationManager = (LocationManager) getSystemService("location");
有了這個
LocationManager locationManager = (LocationManager)<your context>.getSystemService(Context.LOCATION_SERVICE);
private LocationManager getSystemService(String string) {
// TODO Auto-generated method stub
return null;
}
這是您必須自己實現的方法,因為您返回null 。 下面的locationManager
為null ,因此拋出 NullPointerException
String provider = locationManager.getBestProvider(criteria, true);
查看下面的帖子以了解您應該如何實現getSystemService()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.