2012-12-05 12 views
14

Attualmente sto implementando la mia sottoclasse di SupportMapFragment, utilizzando la libreria r3 di google-play-services.Subclassing SupportMapFragment ha come risultato NullPointerException

Ricevo un NullPointerException in una delle classi interne della libreria quando tento di aggiungere il mio frammento a Activity o ViewPager. Ecco lo stacktrace rilevanti:

java.lang.NullPointerException 
    at maps.y.p.onResume(Unknown Source) 
    at com.google.android.gms.maps.internal.IMapFragmentDelegate$Stub.onTransact(IMapFragmentDelegate.java:115) 
    at android.os.Binder.transact(Binder.java:310) 
    at com.google.android.gms.maps.internal.IMapFragmentDelegate$a$a.onResume(Unknown Source) 
    at com.google.android.gms.maps.SupportMapFragment$a.onResume(Unknown Source) 
    at com.google.android.gms.internal.c$1.a(Unknown Source) 
    at com.google.android.gms.internal.c.a(Unknown Source) 
    at com.google.android.gms.internal.c.onResume(Unknown Source) 
    at com.google.android.gms.maps.SupportMapFragment.onResume(Unknown Source) 
    at android.support.v4.app.Fragment.performResume(Fragment.java:1503) 
    at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:947) 
    at android.support.v4.app.FragmentManagerImpl.performPendingDeferredStart(FragmentManager.java:807) 
    at android.support.v4.app.FragmentManagerImpl.startPendingDeferredFragments(FragmentManager.java:1112) 
    at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1461) 
    at android.support.v4.app.FragmentManagerImpl.executePendingTransactions(FragmentManager.java:461) 

A quanto pare la mappa interna è nullo, a questo punto.

Qualcuno si è già imbattuto in questo problema e ha una soluzione?

+0

Anche io sono bloccato su questo problema ?! Come mai stai sottoclassi? La mia ragione è usare ActionBarSherlock – StuStirling

+0

puoi mostrare il tuo codice? – ligi

+0

Attualmente non posso. Ma preparerò qualcosa che posso mostrare. – keyboardsurfer

risposta

33

Nella sottoclasse di SupportMapFragment, hai sovrascritto onCreateView (...)?

Se lo facevi, dovresti anche chiamare super.onCreateView (...) nel tuo onCreateView (...) per consentire alla super classe di creare la sua vista. Il frammento è strettamente legato alla vista sottostante.

+0

Hai ragione. Manca una super chiamata. Aggiungendolo ha risolto il mio NPE. Grazie! – keyboardsurfer

+0

@Keyboardsurfer sto provando a qualcosa di simile. puoi condividere qualche struttura scheletro su come farlo? http://stackoverflow.com/questions/13764266/android-supportmapfragment-exception-error –

+0

Salve, cosa succede se non desidero chiamare super.onCreateView()? Sto cercando di farlo con le tessere OSM, è possibile? http://stackoverflow.com/questions/14984617/nulpointerexception-on-implementing-fragments-for-osmdroid – lyk

1

Prova getChildFragmentManger() Assicurarsi inoltre di popolare in o dopo onActivityCreated()


Il Docs sembra anche suggerire che, se il sottostante Maps Il sistema non è in funzione non funzionerà.

Verificare inoltre che si stia utilizzando la V11 dell'ACL (anche se dubito che questo sia il problema).

+0

Grazie. Ma non sto cercando di inserire un SupportMapFragment all'interno del mio frammento. Sto provando a sottoclassi effettivamente SupportMapFragment. Inoltre sto usando l'ACL v11 e mi sono occupato del potenziale valore di ritorno nullo di getMap. – keyboardsurfer