Nano Hash - криптовалюты, майнинг, программирование

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

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

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

----- Пример трассировки стека 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)

----- Пример трассировки стека 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)

  • Поделитесь своим исходным кодом GameActivity.java!1 15.06.2012
  • В обеих трассировках стека есть исключение «UnknownSource» в вашем «onCreate» для GameActivity (что, я думаю, является вашим основным действием). Проверьте свой метод onCreate, чтобы увидеть, не отсутствует ли что-то в его источнике. 15.06.2012
  • Мой GameActivity расширяет android.support.v4.app.FragmentActivity, который расширяет com.google.android.maps.MapActivity. Первая строка моего метода GameActivity.onCreate(Bundle savedInstanceState)super.onCreate(savedInstanceState);. Судя по трассировке стека, эта строка кажется виновником... 15.06.2012
  • Вы можете опубликовать свою GameActivity? 15.06.2012

Ответы:


1

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

Взгляните на этот пост:

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

07.03.2013
  • Я думаю, вы правы, что ошибка не имеет прямой связи с библиотекой поддержки. Что касается поста, на который вы ссылаетесь, к сожалению, это не решение для меня (имя моего пакета начинается с com.). 08.03.2013
  • Поместили ли вы эту строку в тег <application манифеста: <uses-library android:name="com.google.android.maps" />, и если вы используете MapView, назвали ли вы ее так: <com.google.android.maps.MapView 11.03.2013
  • В противном случае это может быть проблема с вашим ключом API, вы должны сгенерировать ключ на основе вашего ключа отладки (в debug.keystore) для целей тестирования, как описано в этой ссылке: получение ключа API v1 11.03.2013
  • Наконец (и это очень важно), это также может быть проблемой с вашей функцией onCreate: вы должны иметь super.onCreate(savedInstanceState); ДО setContentView(R.layout.activity_my_activity);. На самом деле попробуйте сначала вызвать super.onCreate. 11.03.2013
  • Спасибо за советы, Квентин. Ценить это. У меня есть все эти вещи, и мое приложение отлично работает на всех устройствах Android, которые у меня есть. Кажется, он падает только на некоторых устройствах Android (которых у меня нет). Так сложно докопаться до сути! 12.03.2013

  • 2

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

    15.06.2012
  • Хотел бы я, чтобы это было так! Но я дважды проверил (установив цель сборки на API 8), и у меня есть все правильные импорты. Судя по редкости сообщений об ошибках, которые я получаю, я предполагаю, что эти ошибки возникают только на некоторых телефонах. Просто так раздражает невозможность воспроизвести это на телефонах, которые у меня есть. Любопытно узнать, были ли у других подобные проблемы с библиотеками совместимости... 18.06.2012
  • У меня тоже есть эта ошибка. Я использую эмулятор. Цель — API Google, API 10. 20.06.2012
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..