您好,我正在尝试使用nostra13的UniversalImageLoader显示图像。我不知道如何获取failReason。这是我的代码加载图像uri。我为此使用de.hdodenhof.circleimageview.CircleImageView。
CircleImageView profilePhoto = findViewById(R.id.profile_photo);
imageLoader.displayImage(user.getImage_path(),profilePhoto,new ImageLoadingListener() {
@Override
public void onLoadingStarted(String imageUri, View view) {
Log.i(TAG,"started");
}
@Override
public void onLoadingFailed(String imageUri, View view, FailReason failReason) {
Log.i(TAG,imageUri);
failReason.getCause();
Log.i(TAG,failReason.getType().toString());
}
@Override
public void onLoadingComplete(String imageUri, View view, Bitmap loadedImage) {
Log.i(TAG,"YAY");
}
@Override
public void onLoadingCancelled(String imageUri, View view) {
}
});
字符串图像Uri是内容提供程序uri,因为我正尝试从手机存储中加载该图像。
imageUri : content://com.android.providers.media.documents/document/image%3A38
据我所知,Universal Image Loader能够加载内容提供商Uri。我也不确定如何查看错误。任何帮助表示赞赏:)
答案 0 :(得分:0)
好吧,所以我在筛选日志后发现了安全异常
java.lang.SecurityException: Permission Denial: opening provider com.android.providers.media.MediaDocumentsProvider from ProcessRecord{500992e 4972:com.example.recouture/u0a83} (pid=4972, uid=10083) requires that you obtain access using ACTION_OPEN_DOCUMENT or related APIs
因为我所做的是我在另一个活动中从画廊中选择了一张图片,并将该uri上传到firebase。因此,在另一个活动中,我将从firebase中读取uri,并将其设置为当前所在活动中的映像。但是,即使我上传了uri,当前活动也没有执行此操作所需的权限做到了。为了避免这个问题,我要做的就是使用Firebase存储上传图像并将uri存储到我要上传到Firebase的对象中。然后在要检索Uri的活动中,我可以轻松地使用ImageLoader从firebase中显示uri。对不起,我没有发布所有代码,因为我不认为会遇到此类错误。希望这对某人有帮助。