Intereting Posts
Как построить сложный макет в андроиде с несколькими списками просмотров Биллинг в приложении: добавление биллинга в существующее опубликованное приложение Блокировка Android Canvas блокирует исключение IllegalArgumentException Графики для Android Java.lang.SecurityException. Поставщик местоположения «gps» требует разрешения ACCESS_FINE_LOCATION Служба подключения к Firebase – плохая идея? Cant вставляет строку в файл ресурсов android без получения ошибки Как установить конкретную вкладку при открытии активности макета макета? Android SwipeRefreshLayout, как реализовать canChildScrollUp, если дочерний элемент не является ListView или ScrollView Пользовательские шрифты, многоточие в MultiLine TextViews, символы и глюки RecyclerView – получить все существующие виды / зрители Невозможно воспроизвести это видео. Android videoView mp4, записанный устройством Android Как отключить кеш браузера Android навсегда? Поддельные оценки в игровых сервисах Google Play Как рассчитать соотношение пикселей устройства

Ошибка вызова метода с высокой степенью сложности в Android Studio

Im немного запутался в Android Studio. Раньше я видел такие ошибки в Eclipse.

Пример:

FragmentManager fragmentManager = getFragmentManager(); FragmentTransaction tf = fragmentManager.beginTransaction(); Fragment oldFragment = fragmentManager.findFragmentByTag(AddDialogFragment.TAG); 

Этот код работает нормально, но fragmentManager.beginTransaction (); Подсвечивается и говорит: метод invocation «fragmentManager.beginTransaction» может вызывать «java.lang.NullPointerException» меньше … (Ctrl + F1)

Эта инспекция сообщает об этих условиях в указанной области проверки, которые всегда являются истинными или ложными, а также указывает, где может быть выбрано исключение RuntimeException, на основе анализа потока данных кода. Эта проверка также сообщает о нарушениях Nullable / NotNull. Аннотации для поддержки контракта могут быть настроены (по умолчанию будут использоваться @ Nullable / @ NotNull аннотации из annotations.jar)

Должен ли я сначала проверять Null?

  FragmentManager fragmentManager = getFragmentManager(); if(fragmentManager != null) FragmentTransaction tf = fragmentManager.beginTransaction(); Fragment oldFragment = fragmentManager.findFragmentByTag(AddDialogFragment.TAG); 

Я никогда не видел этого ни в одном Тут или в Примере раньше. Если это глупый вопрос, чем извините, но я все же новичок :).

Solutions Collecting From Web of "Ошибка вызова метода с высокой степенью сложности в Android Studio"

Из того, что я видел, Android Studio показывает слишком много предупреждений о потенциальных NullPointerExceptions , даже для тех методов, которые никогда не вернут null. Я просто игнорирую некоторые из них, но полезно тщательно проверить их все, потому что иногда я пропустил важный.

Если вы посмотрите на исходный код Android, легко увидеть, что getFragmentManager() никогда не вернет null:

 public FragmentManager getFragmentManager() { return mFragments; } 

Где mFragments присваивается только один раз через весь класс:

 final FragmentManagerImpl mFragments = new FragmentManagerImpl();