2016-10-31 2 views
0

Я пытаюсь показать pdf-файл в своем приложении. Я использую библиотеку Pdf Viewer (https://github.com/barteksc/AndroidPdfViewer). Я поместил файл pdf в свою папку с ресурсами. Но когда я пытаюсь загрузить файл, он показывает это исключение:Android Pdf Viewer FileNotFoundException

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.samsung.secautomation/com.samsung.secautomation.ui.activities.ShowPdfActivity}: com.github.barteksc.pdfviewer.exception.FileNotFoundException: src/main/assets/test does not exist 

Вот мой код:

com.github.barteksc.pdfviewer.PDFView pdfView=(com.github.barteksc.pdfviewer.PDFView) findViewById(R.id.pdfViewer); 
    pdfView.fromAsset("src/main/assets/test") //test is the pdf file name 
      .pages(0, 2, 1, 3, 3, 3) // all pages are displayed by default 
      .enableSwipe(true) 
      .swipeHorizontal(false) 
      .enableDoubletap(true) 
      .defaultPage(0) 
      .enableAnnotationRendering(false) 
      .password(null) 
      .scrollHandle(null) 
      .load(); 

Вот мое разрешение в файле манифеста:

<uses-permission android:name="android.permission.INTERNET" /> 
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> 

Я использую Ubuntu 12.04

Есть ли способ решить эту проблему.

Спасибо

+0

Можете ли вы опубликовать более подробную информацию? Например, структура проекта. Я думаю, что путь к файлу неправильный ... возможно, попробуйте добавить «.pdf» к пути ... –

+2

Также похоже, что вы не должны поместить этот путь 'src/main/assets/test'. попробуйте: pdfView.fromAsset ("test.pdf"). Внутри PDFView.fromAsset 'context.getAssets(). Open()' используется http://stackoverflow.com/a/5771369/1533933, поэтому вам не следует писать путь из папки исходного кода – krossovochkin

+0

'src/main/assets/тест'? если файл на компиляторе не находится в '..... assets/src/main/assets /' и не называется 'test' без ext. то 'FileNotFoundException очевидна ... – Selvin

ответ

1

Заменить src/main/assets/test с test. src/main/assets/test - это относительный путь к этому файлу на вашей машине разработки, а не в активах, упакованных на устройство.

Обратите внимание, что я предположил, что вы вручную удалили расширение .pdf из файла, когда вы положили его в src/main/assets/. Если этот файл все еще имеет расширение .pdf, вам, вероятно, понадобится его в вашем коде. Ресурсы отбрасывают свои расширения; активов нет.