Reputation: 177
Please give me a clue why I am getting a null pointer where I am getting the value of getlatitude and how I can fix it??
Main Activity
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
p = new Proximity();
NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
navigationView.setNavigationItemSelectedListener(this);
initLocationFetching(MainActivity.this);
}
@Override
public void locationFetched(Location mLocal, Location oldLocation, String time, String locationProvider) {
super.locationFetched(mLocal, oldLocation, time, locationProvider);
p.setLatitude(mLocal.getLatitude());
p.setLongitude(mLocal.getLongitude());
}
On My fragment where I am getting the value
Proximity p = new Proximity();
public MapFragment(Context c, Activity a) { context = c; activity = a;}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View v = inflater.inflate(R.layout.fragment_contact_us, container, false);
if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
checkLocationPermission();
}
// Initializing
MarkerPoints = new ArrayList<>();
Toast.makeText(context, "Asdasdasdasdas"+p.getLatitude().toString(), Toast.LENGTH_SHORT).show();
Proximity
public class Proximity {
Double latitude;
public Double getLatitude() {
return latitude;
}
public void setLatitude(Double latitude) {
this.latitude = latitude;
}
public Double getLongitude() {
return longitude;
}
public void setLongitude(Double longitude) {
this.longitude = longitude;
}
Double longitude;
}
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.mark/com.mark.activity.MainActivity}: java.lang.NullPointerException at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2195) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245) at android.app.ActivityThread.access$800(ActivityThread.java:135) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:136) at android.app.ActivityThread.main(ActivityThread.java:5021) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:515) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:827) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:643) at dalvik.system.NativeStart.main(Native Method) Caused by: java.lang.NullPointerException at com.fragment.MapFragment.onCreateView(MapFragment.java:113) at android.support.v4.app.Fragment.performCreateView(Fragment.java:2239) at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1332) at android.support.v4.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManager.java:1574) at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1641) at android.support.v4.app.BackStackRecord.executeOps(BackStackRecord.java:794) at android.support.v4.app.FragmentManagerImpl.executeOps(FragmentManager.java:2415) at android.support.v4.app.FragmentManagerImpl.executeOpsTogether(FragmentManager.java:2200) at android.support.v4.app.FragmentManagerImpl.optimizeAndExecuteOps(FragmentManager.java:2153) at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:2063) at android.support.v4.app.FragmentController.execPendingActions(FragmentController.java:388) at android.support.v4.app.FragmentActivity.onStart(FragmentActivity.java:554) at android.support.v7.app.AppCompatActivity.onStart(AppCompatActivity.java:177) at com.mark.BaseActivityLocation.onStart(BaseActivityLocation.java:135) at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1174) at android.app.Activity.performStart(Activity.java:5437) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2168) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245) at android.app.ActivityThread.access$800(ActivityThread.java:135) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:136) at android.app.ActivityThread.main(ActivityThread.java:5021) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:515)
Upvotes: 1
Views: 266
Reputation: 599
In your fragment you have created an object p
Proximity p = new Proximity();
But the member variable latitude
(Assuming that it is an object) is not set. i.e. latitude is null.
As per the logs, in MapFragment.java: line no. 113
you are trying to access it. I think it is the code to show Toast
where p.getLatitude().toString()
results in NullPointerException.
You may have to pass Proximity
instance to fragment either using Fragment.setArguments
while adding the fragment or create a method in your fragment and access it from activity.
As the code for Proximity
is not a posted I assume that lat and long are Objects not primitive data types.
Upvotes: 2