1

I'm getting a nullpointerexception when I try to do:

mapview.onCreate(savedInstanceState);

Here's my code:

    @Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    rootView = inflater.inflate(R.layout.home_fragment, container, false);
    setRetainInstance(true);
    setHasOptionsMenu(true);

    try {
        MapsInitializer.initialize(getActivity().getApplicationContext());
    } catch (Exception e) {
        e.printStackTrace();
    }

    mapView = (MapView) rootView.findViewById(R.id.map);
    mapView.onCreate(savedInstanceState);
    mapView.onResume();
    .........

LOGCAT:

01-14 11:36:40.744 27070-27070/? E/AndroidRuntime: FATAL EXCEPTION: main
                                               java.lang.RuntimeException: Unable to start activity ComponentInfo{com.test.maptest/com.test.maptest.MainActivity}: java.lang.NullPointerException
                                                   at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2343)
                                                   at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2395)
                                                   at android.app.ActivityThread.access$600(ActivityThread.java:162)
                                                   at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1364)
                                                   at android.os.Handler.dispatchMessage(Handler.java:107)
                                                   at android.os.Looper.loop(Looper.java:194)
                                                   at android.app.ActivityThread.main(ActivityThread.java:5403)
                                                   at java.lang.reflect.Method.invokeNative(Native Method)
                                                   at java.lang.reflect.Method.invoke(Method.java:525)
                                                   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:833)
                                                   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
                                                   at dalvik.system.NativeStart.main(Native Method)
                                                Caused by: java.lang.NullPointerException
                                                   at com.google.maps.api.android.lib6.gmm6.m.ad.a(Unknown Source)
                                                   at com.google.maps.api.android.lib6.gmm6.c.h.a(Unknown Source)
                                                   at com.google.maps.api.android.lib6.gmm6.c.y.a(Unknown Source)
                                                   at com.google.maps.api.android.lib6.e.bd.a(Unknown Source)
                                                   at com.google.maps.api.android.lib6.e.ev.a(Unknown Source)
                                                   at com.google.maps.api.android.lib6.e.af.a(Unknown Source)
                                                   at com.google.android.gms.maps.internal.w.onTransact(SourceFile:66)
                                                   at android.os.Binder.transact(Binder.java:310)
                                                   at com.google.android.gms.maps.internal.IMapViewDelegate$zza$zza.onCreate(Unknown Source)
                                                   at com.google.android.gms.maps.MapView$zza.onCreate(Unknown Source)
                                                   at com.google.android.gms.dynamic.zza$3.zzb(Unknown Source)
                                                   at com.google.android.gms.dynamic.zza$1.zza(Unknown Source)
                                                   at com.google.android.gms.maps.MapView$zzb.zzzW(Unknown Source)
                                                   at com.google.android.gms.maps.MapView$zzb.zza(Unknown Source)
                                                   at com.google.android.gms.dynamic.zza.zza(Unknown Source)
                                                   at com.google.android.gms.dynamic.zza.onCreate(Unknown Source)
                                                   at com.google.android.gms.maps.MapView.onCreate(Unknown Source)
                                                   at com.test.maptest.TestFragment.onCreateView(TestFragment.java:343)
                                                   at android.support.v4.app.Fragment.performCreateView(Fragment.java:1962)
                                                   at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1067)
                                                   at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1248)
                                                   at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1230)
                                                   at android.support.v4.app.FragmentManagerImpl.dispatchActivityCreated(FragmentManager.java:2042)
                                                   at android.support.v4.app.FragmentController.dispatchActivityCreated(FragmentController.java:165)
                                                   at android.support.v4.app.FragmentActivity.onStart(FragmentActivity.java:543)
                                                   at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1170)
                                                   at android.app.Activity.performStart(Activity.java:5132)
                                                   at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2316)
                                                   at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2395) 
                                                   at android.app.ActivityThread.access$600(ActivityThread.java:162) 
                                                   at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1364) 
                                                   at android.os.Handler.dispatchMessage(Handler.java:107) 
                                                   at android.os.Looper.loop(Looper.java:194) 
                                                   at android.app.ActivityThread.main(ActivityThread.java:5403) 
                                                   at java.lang.reflect.Method.invokeNative(Native Method) 
                                                   at java.lang.reflect.Method.invoke(Method.java:525) 
                                                   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:833) 
                                                   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600) 
                                                   at dalvik.system.NativeStart.main(Native Method)

Dependencies:

dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:23.1.1'
compile 'com.google.android.gms:play-services:8.4.0'
compile 'com.mcxiaoke.volley:library:1.0.16'
compile 'com.android.support:support-v4:23.1.1'
compile 'com.android.support:recyclerview-v7:23.1.1'
compile 'com.google.android.gms:play-services-ads:8.4.0'
compile 'com.google.android.gms:play-services-identity:8.4.0'
compile 'com.google.android.gms:play-services-gcm:8.4.0'

}

The thing is I'm only getting this in one phone with 4.2.2, all the other phones with different versions are working. The map is displayed and everything works fine.
Can anyone help me figure it out what's going on?
Thanks.

Edit: This particular phone used to work with this code a few months ago, so maybe the problem is newer google play services and support libraries?
If so, how can we correct it?

bond
  • 716
  • 1
  • 8
  • 21

1 Answers1

0

Because you have called

mapView.onCreate(savedInstanceState);
mapView.onResume();

These methods dont need to be called by you. They will be executed by Android itself. Follow mapview tutorial correctly. :)

Also dont do stuff onCreateView, do stuff onViewCreated Method of fragment. Please post the xml file you are initializing.

How to use MapView in android using google map V2?

https://github.com/googlemaps/android-samples/blob/master/ApiDemos%2Fapp%2Fsrc%2Fmain%2Fjava%2Fcom%2Fexample%2Fmapdemo%2FBasicMapDemoActivity.java

Community
  • 1
  • 1
Pinser
  • 1,898
  • 3
  • 29
  • 43
  • Where's the correct tutorial? Why does it work on several other phones? – bond Jan 14 '16 at 14:42
  • Nevertheless the usage is wrong, it had to break sometime. Maybe it breaks if its reinitialized. – Pinser Jan 14 '16 at 14:59
  • The provided link is what I'm doing. Where's the usage wrong? Using Google Play Services 8.4.0 as shown on dependencies – bond Jan 14 '16 at 15:29
  • Also the mapview.onResume() is there only to show the map right away. If I remove it it still gives nullpointerexception..... – bond Jan 14 '16 at 15:40
  • Given links also call mapView.onCreate(savedInstanceState); mapView.onResume(); methods – Talha Jun 06 '22 at 13:02