Java ссылка на нулевой объект при использовании barteks c PdfViewer для загрузки файла - PullRequest
0 голосов
/ 28 мая 2020

Когда я пытаюсь использовать bartek Pdfviewer для загрузки через файл, он продолжает выдавать следующую ошибку. Я не уверен, почему он говорит, что это ссылка на нулевой объект, когда pdfFile = / storage / emulated / 0 / Download / Tennis SG.pdf, как показано ниже, эта ошибка через журнал

Могу я узнать, что я делаю не так?

java.lang.NullPointerException: Attempt to invoke virtual method 'com.github.barteksc.pdfviewer.PDFView$Configurator com.github.barteksc.pdfviewer.PDFView.fromFile(java.io.File)' on a null object reference

 at sg.edu.tp.test2.DownloadFragment$1.onItemClick(DownloadFragment.java:66)

Журнал для Log.d ("TAG", "onItemClick:" + pdfFile);

 D/TAG: onItemClick: /storage/emulated/0/Download/Tennis SG.pdf
public class DownloadFragment extends Fragment {

    private ListView listView;
    private View view;

    @Nullable
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        view = inflater.inflate(R.layout.fragment_download, container, false);
        listView = view.findViewById(R.id.download_listview);


        loadData();

        return view;
    }
     private void loadData(){
        File downloadFolder = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS);
        File[] files = downloadFolder.listFiles();
         final List<String> data = new ArrayList<>();
        for (int i =0; i<files.length; i++){

            String filename = files[i].getAbsolutePath();
            if(filename.endsWith(".pdf")){

                data.add(filename);
            Log.d("TAG", "loadData: " +data);
            }
        }

         ArrayAdapter adapter = new ArrayAdapter(getContext(),
                 android.R.layout.simple_list_item_1, data);
         listView.setAdapter(adapter);
         listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
             @Override
             public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                 listView.setVisibility(View.GONE);
                 PDFView pdfView = view.findViewById(R.id.pdfView);
                 pdfView.setVisibility(View.VISIBLE);
                 File pdfFile = new File(data.get(position));
                 Log.d("TAG", "onItemClick: " + pdfFile);
                 pdfView.fromFile(pdfFile).load();

             }
         });
    }



}
...