Сбой приложения Android при определении байтового буфера для чтения файла - PullRequest
0 голосов
/ 28 сентября 2019

Я пытаюсь прочитать файл в байтовый буфер в Android.Приложение вылетает всякий раз, когда я инициализирую байтовый буфер с размером, равным размеру файла.Я проверил правильно, и размер файла значительно ниже значения INT Max.Из-за определенных настроек проекта я должен протестировать приложение на устройстве, из-за которого у меня нет доступа к logcat.

File outputdir = new File(localcontext.getFilesDir(), "appData");
                if(!outputdir.exists()){
                    if(outputdir.mkdir()){
                        Toast.makeText(localcontext, outputdir.getAbsolutePath(), Toast.LENGTH_SHORT).show();
                    }
                }

                tempfile = new File(outputdir, "runningfile.mp4");

                bytebuffer = new byte[(int)encryptedfile.length()];
                OutputStream os = new FileOutputStream(tempfile.getAbsolutePath(), false);

//                DataInputStream dataInputStream = new DataInputStream(fis);
//                dataInputStream.readFully(bytebuffer);
//                dataInputStream.close();

Приложение работает нормально и отображает некоторое сообщение, когда я комментируюстрока инициализации байтового буфера, но в противном случае происходит сбой.Я не могу понять, что здесь не так.Пожалуйста помоги.Спасибо.

1 Ответ

0 голосов
/ 28 сентября 2019

Используйте блок try catch и выведите ошибку с тостом.

try{
    bytebuffer = new byte[(int)encryptedfile.length()];
}catch(Exception e){
  Toast.makeText(getActivity(), e.getMessage(),Toast.LENGTH_LONG).show();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...