похоже на этот вопрос File not found error after selecting a file in android, я получаю файл не найденным исключением после того, как я выбираю файл с SD, однако решение в предоставленном вопросе не помогло мне, но также привело к другой файл не найден исключение. Вот мой код, и он бросает FileNotFoundException точно по указанной линии со стрелкойФайл не найден при использовании файла после его выбора Android
private void fileChooser() {
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType("*/*");
intent.addCategory(Intent.CATEGORY_OPENABLE);
try {
startActivityForResult(
Intent.createChooser(intent, "Select a File to Upload"),0);
} catch (android.content.ActivityNotFoundException ex) {
// Potentially direct the user to the Market with a Dialog
Toast.makeText(this, "Please install a File Manager.",
Toast.LENGTH_SHORT).show();
}
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
switch (requestCode) {
case 0:
if (resultCode == RESULT_OK) {
// Get the Uri of the selected file
Uri uri = data.getData();
// Get the path
try {
File f=new File(uri.getPath());
Bitmap mBitmap=null;
screenRuntime.getRewriteMachine().addSendFile(f);
ParcelFileDescriptor pfd=ParcelFileDescriptor.open(f,ParcelFileDescriptor.MODE_READ_ONLY); <-------------
PdfRenderer renderer=new PdfRenderer(pfd);
final int pageCount = renderer.getPageCount();
for (int i = 0; i < pageCount; i++) {
PdfRenderer.Page page = renderer.openPage(i);
// say we render for showing on the screen
page.render(mBitmap, null, null, PdfRenderer.Page.RENDER_MODE_FOR_DISPLAY);
// do stuff with the bitmap
// close the page
page.close();
}
RelativeLayout rl=(RelativeLayout)findViewById(R.id.mainContent);
rl.setBackground(new BitmapDrawable(content.getResources(),mBitmap));
// close the renderer
renderer.close();
} catch (IOException e) {
e.printStackTrace();
}
Log.wtf("Sent file","Sent file");
// Get the file instance
// File file = new File(path);
// Initiate the upload
}
break;
}
super.onActivityResult(requestCode, resultCode, data);
}
Может кто-нибудь сказать мне, почему решение в ссылке не работает для меня? или что я могу сделать, чтобы исправить это? или что может пойти не так? Здесь находится копия журнала
строка 110 - ParcelFileDescriptor pfd = ParcelFileDescriptor.open (f, ParcelFileDescriptor.MODE_READ_ONLY);
02-16 14:50:22.969 26284-26284/cmu.edu.screenshare W/System.err﹕ java.io.FileNotFoundException: No such file or directory
02-16 14:50:22.969 26284-26284/cmu.edu.screenshare W/System.err﹕ at android.os.Parcel.openFileDescriptor(Native Method)
02-16 14:50:22.969 26284-26284/cmu.edu.screenshare W/System.err﹕ at android.os.ParcelFileDescriptor.openInternal(ParcelFileDescriptor.java:253)
02-16 14:50:22.969 26284-26284/cmu.edu.screenshare W/System.err﹕ at android.os.ParcelFileDescriptor.open(ParcelFileDescriptor.java:199)
02-16 14:50:22.969 26284-26284/cmu.edu.screenshare W/System.err﹕ at cmu.edu.screenshare.MainActivity.onActivityResult(MainActivity.java:110)
02-16 14:50:22.969 26284-26284/cmu.edu.screenshare W/System.err﹕ at android.app.Activity.dispatchActivityResult(Activity.java:6160)
02-16 14:50:22.969 26284-26284/cmu.edu.screenshare W/System.err﹕ at android.app.ActivityThread.deliverResults(ActivityThread.java:3877)
02-16 14:50:22.969 26284-26284/cmu.edu.screenshare W/System.err﹕ at android.app.ActivityThread.handleSendResult(ActivityThread.java:3931)
02-16 14:50:22.969 26284-26284/cmu.edu.screenshare W/System.err﹕ at android.app.ActivityThread.access$1300(ActivityThread.java:144)
02-16 14:50:22.969 26284-26284/cmu.edu.screenshare W/System.err﹕ at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1408)
02-16 14:50:22.969 26284-26284/cmu.edu.screenshare W/System.err﹕ at android.os.Handler.dispatchMessage(Handler.java:102)
02-16 14:50:22.969 26284-26284/cmu.edu.screenshare W/System.err﹕ at android.os.Looper.loop(Looper.java:155)
02-16 14:50:22.969 26284-26284/cmu.edu.screenshare W/System.err﹕ at android.app.ActivityThread.main(ActivityThread.java:5696)
02-16 14:50:22.969 26284-26284/cmu.edu.screenshare W/System.err﹕ at java.lang.reflect.Method.invoke(Native Method)
02-16 14:50:22.969 26284-26284/cmu.edu.screenshare W/System.err﹕ at java.lang.reflect.Method.invoke(Method.java:372)
02-16 14:50:22.969 26284-26284/cmu.edu.screenshare W/System.err﹕ at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1029)
02-16 14:50:22.969 26284-26284/cmu.edu.screenshare W/System.err﹕ at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:824)
Спасибо!
@saeed файл выбран не образ, я использую pdfRenderer API из API 21, чтобы отобразить страницу из PDF-файла в растровом изображении. На самом деле это не проблема, и это не актуально, так как мой код даже не доходит до него. Он падает по указанной линии. – gedo
@saeed ParcelFileDescriptor pfd = ParcelFileDescriptor.open (f, ParcelFileDescriptor.MODE_READ_ONLY); – gedo
можете ли вы разместить свой логарифм? – saeed