nostra13 / Android-Universal-Image-Loader

Powerful and flexible library for loading, caching and displaying images on Android.
Apache License 2.0
16.79k stars 6.1k forks source link

Resources not found while loading from content:// #1357

Open JavierYepez opened 4 years ago

JavierYepez commented 4 years ago

Hi, I'm having issues to load an image from the external sdcard. I'm trying to load it from content://media/external/images/media/869

I'm getting the this location from uri.getPath().toString();

Some code:

Image image = getItem(position);
String uri = image.getUri().toString();
Log.d("Debbug", uri);
ImageLoader imageLoader = ImageLoader.getInstance();
imageLoader.displayImage(uri, holder.image, new ImageLoadingListener() {...}

Output:

6-01 15:50:09.395 22066-22066/? D/Debbug: content://media/external/images/media/869
...
06-01 15:50:09.399 22066-22066/? E/AndroidRuntime: FATAL EXCEPTION: main
    Process: org.gradiant.facedetection, PID: 22066
    android.content.res.Resources$NotFoundException: Resource ID #0x7f070089
        at android.content.res.Resources.getValue(Resources.java:2110)
        at android.content.res.Resources.getDrawable(Resources.java:1438)
        at android.content.res.Resources.getDrawable(Resources.java:1399)
        at com.nostra13.universalimageloader.core.DisplayImageOptions.getImageOnLoading(DisplayImageOptions.java:134)
        at com.nostra13.universalimageloader.core.ImageLoader.displayImage(ImageLoader.java:287)
        at com.nostra13.universalimageloader.core.ImageLoader.displayImage(ImageLoader.java:209)
        at com.nostra13.universalimageloader.core.ImageLoader.displayImage(ImageLoader.java:365)
        at org.gradiant.facedetection.GridImageAdapter.getView(GridImageAdapter.java:61)
        at android.widget.AbsListView.obtainView(AbsListView.java:2467)
        at android.widget.GridView.onMeasure(GridView.java:1065)
        at android.view.View.measure(View.java:17915)
        at android.widget.ScrollView.measureChildWithMargins(ScrollView.java:1286)
        at android.widget.FrameLayout.onMeasure(FrameLayout.java:465)
        at android.widget.ScrollView.onMeasure(ScrollView.java:342)
        at android.view.View.measure(View.java:17915)
        at androidx.constraintlayout.widget.ConstraintLayout.internalMeasureChildren(ConstraintLayout.java:1227)
        at androidx.constraintlayout.widget.ConstraintLayout.onMeasure(ConstraintLayout.java:1572)
        at android.view.View.measure(View.java:17915)
        at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5698)
        at android.widget.FrameLayout.onMeasure(FrameLayout.java:465)
        at android.view.View.measure(View.java:17915)
        at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5698)
        at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1692)
        at android.widget.LinearLayout.measureVertical(LinearLayout.java:760)
        at android.widget.LinearLayout.onMeasure(LinearLayout.java:629)
        at android.view.View.measure(View.java:17915)
        at androidx.constraintlayout.widget.ConstraintLayout.internalMeasureChildren(ConstraintLayout.java:1227)
        at androidx.constraintlayout.widget.ConstraintLayout.onMeasure(ConstraintLayout.java:1572)
        at android.view.View.measure(View.java:17915)
        at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5698)
        at android.widget.FrameLayout.onMeasure(FrameLayout.java:465)
        at androidx.appcompat.widget.ContentFrameLayout.onMeasure(ContentFrameLayout.java:143)
        at android.view.View.measure(View.java:17915)
        at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5698)
        at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1692)
        at android.widget.LinearLayout.measureVertical(LinearLayout.java:760)
        at android.widget.LinearLayout.onMeasure(LinearLayout.java:629)
        at android.view.View.measure(View.java:17915)
        at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5698)
        at android.widget.FrameLayout.onMeasure(FrameLayout.java:465)
        at android.view.View.measure(View.java:17915)
        at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5698)
        at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1692)
        at android.widget.LinearLayout.measureVertical(LinearLayout.java:760)
        at android.widget.LinearLayout.onMeasure(LinearLayout.java:629)
        at android.view.View.measure(View.java:17915)
        at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5698)
        at android.widget.FrameLayout.onMeasure(FrameLayout.java:465)
        at com.android.internal.policy.impl.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2731)
        at android.view.View.measure(View.java:17915)
        at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:2413)
        at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1415)
        at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1639)
        at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1293)
        at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6599)
        at android.view.Choreographer$CallbackRecord.run(Choreographer.java:800)
        at 
asotorui commented 4 years ago

try to use android:requestLegacyExternalStorage="true" in your AndroidManifest.xml

https://developer.android.com/training/data-storage/files/external-scoped