@Koshkin_I

Как правильно понимать такую ошибку?

Здравия всем!
Вопрос в том, как именно прочитать такую ошибку:

E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.koshkin.pdfreaderj, PID: 4388
java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.ListView.setAdapter(android.widget.ListAdapter)' on a null object reference
at com.koshkin.pdfreaderj.ui.pdfreader.PDFFragment.initViews(PDFFragment.java:81)
at com.koshkin.pdfreaderj.ui.pdfreader.PDFFragment.checkPermission(PDFFragment.java:150)
at com.koshkin.pdfreaderj.ui.pdfreader.PDFFragment.onCreateView(PDFFragment.java:69)
at androidx.fragment.app.Fragment.performCreateView(Fragment.java:3104)
......
......
Понятно что происходит ссылка на еще не существующий объект, но что именно не создано ListView или адаптер.
Код работал без использования фрагментов, занялся переписыванием с фрагментами и не понимаю, что куда прикрутить.
Ну и вцелом, когда выскакивают такие ошибки непонятно толи
'void android.widget.ListView.setAdapter(android.widget.ListAdapter)'
ссылается на нулевой объект, тогда на какой, толи на него ссылаются тогда кто

76   public void initViews() {
        // получаем путь до внешнего хранилища
        String path = Environment.getExternalStorageDirectory().getAbsolutePath();
        initList(path);
        // устанавливаем адаптер в ListView
<b>81</b>        listView.setAdapter(adapter);
        // когда пользователь выбирает PDF-файл из списка, открываем активность для просмотра
        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                Intent intent = new Intent(getActivity(), PdfActivity.class);
                intent.putExtra("keyName",arrayList.get(position).getFileName());
                intent.putExtra("fileName", arrayList.get(position).getFilePath());
                getActivity().startActivity(intent);
            }
        });
    }


147  private void checkPermission() {
        if (ContextCompat.checkSelfPermission(getContext(), Manifest.permission.READ_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED
                && ContextCompat.checkSelfPermission(getContext(), Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED) {
150            initViews();
        } else {
            ActivityCompat.requestPermissions(getActivity(), new String[]{Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE}, REQUEST_PERMISSION);
        }
    }


59 public View onCreateView(@NonNull LayoutInflater inflater,
                             ViewGroup container, Bundle savedInstanceState) {

        binding = FragmentPdfBinding.inflate(inflater, container, false);
        View root = binding.getRoot();

 
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
            checkPermission();
        } else {
 69          initViews();
        }
        return root;
    }
  • Вопрос задан
  • 39 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы