I am trying to use Google's StreetView Image API in my app and use it withing a FragmentPageAdapter. I used the streetview api within a single activity and it was working fine but when I tried 'switched' to a 3 fragment fragmentPagerAdapter as soon as I tap on the StreetViewPanoramaFragment fragment the app crashes with the followig:
Theme: themes:{}
java.lang.NullPointerException: Attempt to invoke virtual method 'void com.google.android.gms.maps.StreetViewPanoramaFragment.getStreetViewPanoramaAsync(com.google.android.gms.maps.OnStreetViewPanoramaReadyCallback)' on a null object reference
at xdesign.georgi.prototyping_espc_streetview.fragments.StreetViewFragment.onCreateView(StreetViewFragment.java:38)
at android.support.v4.app.Fragment.performCreateView(Fragment.java:1962)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1016)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1197)
at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:738)
at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1562)
at android.support.v4.app.FragmentManagerImpl.executePendingTransactions(FragmentManager.java:535)
at android.support.v4.app.FragmentPagerAdapter.finishUpdate(FragmentPagerAdapter.java:141)
at android.support.v4.view.ViewPager.populate(ViewPager.java:1106)
at android.support.v4.view.ViewPager.setCurrentItemInternal(ViewPager.java:552)
at android.support.v4.view.ViewPager.setCurrentItemInternal(ViewPager.java:514)
at android.support.v4.view.ViewPager.setCurrentItem(ViewPager.java:495)
at xdesign.georgi.prototyping_espc_streetview.MainActivity.onTabSelected(MainActivity.java:94)
This is my "StreetViewFragment"
public class StreetViewFragment extends Fragment implements OnStreetViewPanoramaReadyCallback {
private StreetViewPanoramaFragment streetViewPanoramaFragment;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
//Overriden method onCreateView
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
StreetViewPanoramaFragment streetViewPanoramaFragment = (StreetViewPanoramaFragment) getActivity().getFragmentManager().findFragmentById(R.id.streetviewpanorama);
streetViewPanoramaFragment.getStreetViewPanoramaAsync(this);
//Returning the layout file after inflating
//Change R.layout.tab1 in you classes
return inflater.inflate(R.layout.street_virew_fragment_layout, container, false);
}
@Override
public void onStreetViewPanoramaReady(StreetViewPanorama streetViewPanorama) {
streetViewPanorama.setPosition(new LatLng(-33.87365, 151.20689));
}
}
'street_virew_fragment_layout'xml:
<?xml version="1.0" encoding="utf-8"?>
<fragment
xmlns:android="http://schemas.android.com/apk/res/android"
android:name="com.google.android.gms.maps.SupportStreetViewPanoramaFragment"
android:id="@+id/streetviewpanorama"
android:layout_width="match_parent"
android:layout_height="match_parent"/>