Невозможно запустить действие, вызванное NullPointerException в ContextImpl.openFileOutput

Я выпустил приложение, которое использует библиотеку совместимости Android для Карт Google (https://github.com/petedoyle/android-support-v4-googlemaps) и я получил нечетное сообщение «Невозможно начать работу» отчеты о сбоях.

Я вставил несколько примеров следов стека ниже. Любой другой испытал это, используя библиотеку совместимости Android для Карт Google или даже используя стандартную библиотеку совместимости Android (http://developer.android.com/sdk/compatibility-library.html)? Кто-нибудь знает, как я мог бы преодолеть эту ошибку?

----- Example stack trace 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)

----- Example stack 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)
 gsb15 июн. 2012 г., 19:11
В обеих трассировках стека есть «UnknownSource». исключение для вашего "onCreate" для GameActivity (которая, по-моему, является вашей основной деятельностью). Проверьте свои «наСоздать» метод, чтобы увидеть, если что-то не хватает его источника.
 gsb15 июн. 2012 г., 19:57
Вы можете опубликовать свой GameActivity?
 Adil Hussain15 июн. 2012 г., 19:33
мойGameActivity продолжаетсяandroid.support.v4.app.FragmentActivity который расширяетсяcom.google.android.maps.MapActivity, Первая строка моегоGameActivity.onCreate(Bundle savedInstanceState) методsuper.onCreate(savedInstanceState);, Судя по трассировке стека, эта строка кажется виновной ...
 Vipul Shah15 июн. 2012 г., 19:09
Поделитесь своим исходным кодом GameActivity.java 1

Ответы на вопрос(2)

Решение Вопроса

У меня та же ошибка, и кажется, что эта ошибка не связана с использованием android-support-v4-googlemaps.

Посмотрите на этот пост:

Сбой MapView / MapActivity на некоторых устройствах

 11 мар. 2013 г., 16:07
Наконец (и это очень важно) это также может быть проблемой с вашимonCreate функция: вы должны иметьsuper.onCreate(savedInstanceState); BEFORE setContentView(R.layout.activity_my_activity);, На самом деле попробуйте сначала вызвать super.onCreate.
 Adil Hussain08 мар. 2013 г., 18:50
Я думаю, вы правы, что ошибка не связана напрямую с библиотекой поддержки. Что касается поста, на который вы ссылаетесь, к сожалению, это не решение для меня (имя моего пакета начинается сcom.).
 11 мар. 2013 г., 15:07
В противном случае это может быть проблема с вашим ключом API, вы должны сгенерировать ключ на основе вашего ключа отладки (в debug.keystore) для целей тестирования, как описано в этой ссылке:obtaining api key v1
 11 мар. 2013 г., 14:56
Вы указали эту строку в манифесте?<application тег :<uses-library android:name="com.google.android.maps" /> и если вы используете MapView, вы назвали его так:<com.google.android.maps.MapView
 Adil Hussain12 мар. 2013 г., 09:37
Спасибо за подсказки Квентин. Ценить это. У меня есть все эти вещи, и мое приложение работает нормально на всех устройствах Android, которые у меня есть. Кажется, он падает только на некоторых устройствах Android (которых у меня нет). Так что очень трудно добраться до сути!

У меня была эта ошибка, когда я использовал библиотеку совместимости. У меня был проект, ориентированный на Android API 15, но я хотел, чтобы минимальная версия была Android API 8, поэтому мне нужно было кое-что из библиотеки совместимости. Я прикрепил библиотеку, но забыл использоватьimports от него! Когда проект создавался, все было прекрасно, но когда я запустил его на своем телефоне с Android 2.3.3, он не смог найти некоторые классы, потому что у Android 2.3.3 их просто не было! Итак, я предлагаю вам удалить всеimports, НажмитеCtrl+Shift+O и всякий раз, когда будет выбор использоватьnormal Встроенный класс Android или один из библиотеки совместимости, всегда выбирайте второй. Скажите, помогло ли это!

 20 июн. 2012 г., 03:33
У меня тоже есть эта ошибка. Я использую эмулятор. Цель - API Google, API 10.
 Adil Hussain18 июн. 2012 г., 12:49
Я хотел бы, чтобы это было! Но я дважды проверил (установив цель сборки на API 8), и у меня есть все правильные импорты. По частоте сообщений об ошибках, которые я получаю, я предполагаю, что эти ошибки происходят только на некоторых телефонах. Просто так раздражает, что я не могу воспроизвести его на телефонах, которые у меня есть. Любопытно узнать, были ли другие проблемы с библиотеками совместимости ...

Ваш ответ на вопрос