I'm fetching image from my android assets folder and cache.
My asset uri is //assets/initial/initialone.jpg
while my gallery uri is /data/user/0/packagename/image/image.jpg
.
I can't give these URI to the Ucrop android library.
Below is what I've done by far:
File cachePath=new Flie(getCacheDir(),"images")
if(!cachePath.exists())
cachePath.mkdirs();
FileOutputStream fos=new FileOutputStream(cachePath+"/image.jpg");
myImageBitmap.compress(Bitmap.CompressFormat.JPEG,80,fos);
fos.close();
Uri source=Uri.parse(cachePath+"/image.jpg");
Uri destination = Uri.fromFile(new File(getCacheDir(), "cropped"));
UCrop.of(source,destination).start(this);
If I give this Uris then I get these errors:
java.lang.RuntimeException: An error occurred while executing doInBackground()
at android.os.AsyncTask$3.done(AsyncTask.java:309)
at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:354)
at java.util.concurrent.FutureTask.setException(FutureTask.java:223)
at java.util.concurrent.FutureTask.run(FutureTask.java:242)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:234)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
at java.lang.Thread.run(Thread.java:818)
Caused by: java.lang.IllegalArgumentException: Invalid Uri schemenull
at com.yalantis.ucrop.task.BitmapLoadTask.processInputUri(BitmapLoadTask.java:184)
at com.yalantis.ucrop.task.BitmapLoadTask.doInBackground(BitmapLoadTask.java:90)
at com.yalantis.ucrop.task.BitmapLoadTask.doInBackground(BitmapLoadTask.java:41)
at android.os.AsyncTask$2.call(AsyncTask.java:295)
at java.util.concurrent.FutureTask.run(FutureTask.java:237)