Mapview дает фрагмент исключения nullpointerexception

Я получаю исключение nullpointerexception, когда пытаюсь сделать:

mapview.onCreate(savedInstanceState);

Вот мой код:

    @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();
    .........

ЛОГКАТ:

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 {
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'

}

Дело в том, что у меня такое только в одном телефоне с 4.2.2, все остальные телефоны с разными версиями работают. Карта отображается, и все работает нормально.
Кто-нибудь может помочь мне разобраться, что происходит?
Спасибо.

Редактировать: этот конкретный телефон работал с этим кодом несколько месяцев назад, так что, возможно, проблема в более новых сервисах Google Play и библиотеках поддержки?
Если да, то как мы можем это исправить?


person bond    schedule 13.01.2016    source источник
comment
@Ms Yvette Добавлен логарифм и зависимости   -  person bond    schedule 14.01.2016


Ответы (1)


Потому что ты позвонил

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

Эти методы не должны вызываться вами. Их будет выполнять сам Android. Правильно следуйте руководству по просмотру карты. :)

Также не делайте вещи onCreateView, делайте вещи onViewCreated Метод фрагмента. Пожалуйста, опубликуйте XML-файл, который вы инициализируете.

Как использовать MapView в Android с помощью Google Map V2?< /а>

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

person JehandadK    schedule 14.01.2016
comment
Где правильный урок? Почему это работает на нескольких других телефонах? - person bond; 14.01.2016
comment
Тем не менее, использование неправильное, оно должно было когда-то сломаться. Возможно, он сломается, если его повторно инициализировать. - person JehandadK; 14.01.2016
comment
Предоставленная ссылка - это то, что я делаю. Где неправильное использование? Использование сервисов Google Play 8.4.0, как показано в зависимостях - person bond; 14.01.2016
comment
Кроме того, mapview.onResume() предназначен только для немедленного отображения карты. Если я удалю его, он все равно выдаст исключение nullpointerexception..... - person bond; 14.01.2016