I use this example to get image path. Every thing OK when I get small image path, but when I want to get huge image path my application crush. I don't know why this happen because I don't use ImageView to show image from selected path.
My code is here to open gallery and select image:
selectImgBtn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(Intent.ACTION_GET_CONTENT); intent.setType("image/*"); startActivityForResult(intent, 0); //urlTV.setText(getMainPath()); } }); And the second to show path:
@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (resultCode == Activity.RESULT_OK && data != null){ String realPath; if (Build.VERSION.SDK_INT < 19){ realPath = RealPathUtil.getRealPathFromURI_API11to18(this, data.getData()); } else { realPath = RealPathUtil.getRealPathFromURI_API19(this, data.getData()); } setMainPath(realPath); /*setFile(realPath); setToTextViews(Build.VERSION.SDK_INT, data.getData().getPath(), realPath);*/ urlTV.setText(getMainPath()); } } Thanks!
Caused by: java.lang.IllegalArgumentException: Not a document: content://media/external/images/media/32257 at android.provider.DocumentsContract.getDocumentId(DocumentsContract.java:629) at com.example.murager.httpclientapp.classes.RealPathUtil.getRealPathFromURI_API19(RealPathUtil.java:19) at com.example.murager.httpclientapp.activities.MainActivity.onActivityResult(MainActivity.java:98) at android.app.Activity.dispatchActivityResult(Activity.java:5456) at android.app.ActivityThread.deliverResults(ActivityThread.java:3549) at android.app.ActivityThread.handleSendResult(ActivityThread.java:3596) at android.app.ActivityThread.access$1300(ActivityThread.java:151) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1369) at android.os.Handler.dispatchMessage(Handler.java:110) at android.os.Looper.loop(Looper.java:193) at android.app.ActivityThread.main(ActivityThread.java:5292) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:515) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:824) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:640) at dalvik.system.NativeStart.main(Native Method)