0

J'ai publié une application qui utilise la bibliothèque de compatibilité Android pour Google Maps (https://github.com/petedoyle/android-support-v4-googlemaps) et j'ai reçu des rapports de plantage «Impossible de démarrer l'activité».Impossible de démarrer l'activité causée par NullPointerException à ContextImpl.openFileOutput

J'ai collé quelques traces de pile d'échantillons ci-dessous. Quelqu'un d'autre a-t-il expérimenté cela en utilisant la bibliothèque de compatibilité Android pour Google Maps ou même en utilisant la bibliothèque de compatibilité Android standard (http://developer.android.com/sdk/compatibility-library.html)? Quelqu'un sait comment je pourrais être capable de surmonter cette erreur?

----- Exemple trace de la pile 1 -----

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.mycompany.myapp/com.mycompany.myapp.activities.GameActivity}: java.lang.NullPointerException 
... 
caused by java.lang.NullPointerException 
at android.app.ContextImpl.openFileOutput(ContextImpl.java:430) 
at android.content.ContextWrapper.openFileOutput(ContextWrapper.java:158) 
at com.google.common.io.android.AndroidPersistentStore.writeBlockX(Unknown Source) 
at com.google.common.io.android.AndroidPersistentStore.writeBlock(Unknown Source) 
at com.google.common.io.PreferenceStore.ensurePreferencesLoaded(Unknown Source) 
at com.google.common.io.PreferenceStore.readPreference(Unknown Source) 
at com.google.common.io.BasePersistentStore.readPreference(Unknown Source) 
at com.google.common.StaticUtil.readPreferenceAsDataInput(Unknown Source) 
at com.google.googlenav.datarequest.DataRequestDispatcher.loadOrRequestCookie(Unknown Source) 
at com.google.googlenav.datarequest.DataRequestDispatcher.<init>(Unknown Source) 
at com.google.googlenav.datarequest.DataRequestDispatcher.createInstance(Unknown Source) 
at com.google.android.maps.MapActivity.createMap(MapActivity.java:509) 
at com.google.android.maps.MapActivity.onCreate(MapActivity.java:409) 
at android.support.v4.app.FragmentActivity.onCreate(Unknown Source) 
at com.mycompany.myapp.activities.GameActivity.onCreate(Unknown Source) 
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627) 

----- Exemple pile trace 2 -----

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.mycompany.myapp/com.mycompany.myapp.activities.GameActivity}: java.lang.NullPointerException 
... 
Caused by: java.lang.NullPointerException 
at android.app.ContextImpl.openFileOutput(ContextImpl.java:423) 
at android.content.ContextWrapper.openFileOutput(ContextWrapper.java:158) 
at android_maps_conflict_avoidance.com.google.common.io.android.AndroidPersistentStore.writeBlockX(AndroidPersistentStore.java:140) 
at android_maps_conflict_avoidance.com.google.common.io.android.AndroidPersistentStore.writeBlock(AndroidPersistentStore.java:169) 
at android_maps_conflict_avoidance.com.google.common.io.PreferenceStore.ensurePreferencesLoaded(PreferenceStore.java:178) 
at android_maps_conflict_avoidance.com.google.common.io.PreferenceStore.readPreference(PreferenceStore.java:86) 
at android_maps_conflict_avoidance.com.google.common.io.BasePersistentStore.readPreference(BasePersistentStore.java:41) 
at android_maps_conflict_avoidance.com.google.common.StaticUtil.readPreferenceAsDataInput(StaticUtil.java:271) 
at android_maps_conflict_avoidance.com.google.googlenav.datarequest.DataRequestDispatcher.loadOrRequestCookie(DataRequestDispatcher.java:493) 
at android_maps_conflict_avoidance.com.google.googlenav.datarequest.DataRequestDispatcher.<init>(DataRequestDispatcher.java:390) 
at android_maps_conflict_avoidance.com.google.googlenav.datarequest.DataRequestDispatcher.createInstance(DataRequestDispatcher.java:341) 
at com.google.android.maps.MapActivity.createMap(MapActivity.java:548) 
at com.google.android.maps.MapActivity.onCreate(MapActivity.java:422) 
at android.support.v4.app.FragmentActivity.onCreate(Unknown Source) 
at com.mycompany.myapp.activities.GameActivity.onCreate(Unknown Source) 
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1709) 
+0

Partagez votre code GameActivity.java Source 1 –

+0

Enterré dans les traces de la pile, il y a une exception 'UnknownSource' sur votre 'onCreate' pour GameActivity (qui est votre activité principale, ma conjecture). Vérifiez votre méthode 'onCreate' pour voir si quelque chose manque sa source. – Nerd

+0

My 'GameActivity' étend' android.support.v4.app.FragmentActivity' qui étend 'com.google.android.maps.MapActivity'. La première ligne de ma méthode 'GameActivity.onCreate (Bundle savedInstanceState)' est 'super.onCreate (savedInstanceState);'. A en juger par la pile trace cette ligne semble être le coupable ... –

Répondre

1

J'ai le même bug et il semble que cette erreur n'a aucun lien avec l'utilisation de android-support-v4-googlemaps.

Jetez un oeil à ce poste:

MapView/MapActivity crash on some devices

+0

Je pense que vous avez raison de dire que le bogue n'a aucun lien direct avec la bibliothèque de support. En ce qui concerne le post auquel vous avez lié, malheureusement ce n'est pas la solution pour moi (le nom de mon paquet commence par un 'com.'). –

+0

Avez-vous mis cette ligne dans la balise ' 'et si vous utilisez un MapView, l'avez-vous nommé comme tel: '

+0

Sinon, il pourrait s'agir d'un problème avec votre clé API, vous devez générer une clé basée sur votre clé de débogage (dans debug.keystore) à des fins de test comme décrit dans ce lien: [ l'obtention de la clé api v1] (https://developers.google.com/maps/documentation/android/v1/mapkey) –

0

J'ai eu cette erreur quand j'ai utilisé la bibliothèque de compatibilité. Ce que j'avais était le projet qui visait Android API 15, mais je voulais que la version minimale soit Android API 8, donc j'avais besoin de quelques choses de la bibliothèque de compatibilité. J'ai attaché la bibliothèque, mais ai oublié d'employer imports de lui! Lorsque le projet a été construit, il était parfaitement bien, mais quand je l'ai couru sur mon téléphone qui avait Android 2.3.3 dessus, il ne pouvait pas trouver des classes, parce que Android 2.3.3 ne les avait tout simplement pas! Donc, je vous suggère de supprimer tous les imports, appuyez sur Ctrl+Shift+O et chaque fois qu'il y aura un choix pour utiliser une classe intégrée normal Android ou un de la bibliothèque de compatibilité, choisissez toujours le second. Dites-moi si cela a aidé!

+0

Je souhaite que c'était ça! Mais j'ai vérifié deux fois (en définissant ma cible de construction à API 8) et j'ai toutes les importations correctes. Je devine de la rareté des rapports d'erreur que je reçois que ces erreurs se produisent sur certains téléphones seulement. Juste tellement ennuyeux de ne pas pouvoir le reproduire sur les téléphones que j'ai. Curieux de savoir si d'autres ont eu des problèmes similaires avec les bibliothèques de compatibilité ... –

+1

J'ai aussi cette erreur. J'utilise l'émulateur. Target est API Google, API 10. – bhekman

Questions connexes