错误如下:
Caused by: java.lang.NoSuchMethodError: com.bumptech.glide.RequestManager.load
典型的一个项目中的依赖冲突:
implementation 'com.github.LuckSiege.PictureSelector:picture_library:v2.1.1'
与
compile 'jp.wasabeef:glide-transformations:2.0.2'
的冲突。
第一个相册图片选择依赖中含有了glide 4,所以第二个的glide会出现异常,没有导入第一个依赖时,项目还是正常的,下面看看解决方法:
1.把gradle里的依赖改成:
compile ('com.github.LuckSiege.PictureSelector:picture_library:v2.1.0'){
exclude group: 'com.github.bumptech.glide'
}
2.注释低版本的glide依赖包,我就是注释了我的第二个glide依赖,当然,这会牵连到修改之前的glide版本代码的写法:
import android.content.Context;
import android.graphics.Bitmap;
import android.widget.ImageView;
import com.bumptech.glide.Glide;
import com.bumptech.glide.request.RequestOptions;
//import com.bumptech.glide.request.animation.GlideAnimation;
import com.bumptech.glide.request.target.SimpleTarget;
import com.github.chrisbanes.photoview.PhotoView;
import com.iruiyou.common.R;
import com.iruiyou.common.RyCommon;
import java.io.File;
//import jp.wasabeef.glide.transformations.BlurTransformation;
//import jp.wasabeef.glide.transformations.CropCircleTransformation;
/**
* 类描述:图片加载
* 作者:Created by sgf
*/
public class GlideUtils {
/**
* 标准图片
*
* @param url
* @param imageView
*/
public static void display(String url, ImageView imageView) {
Glide.with(RyCommon.getInstance().getConfiguration().getContext()).load(url).into(imageView);
}
/**
* 加载圆形图片
*
* @param context
* @param url
* @param imageView
*/
public static void displayRound(Context context, String url, ImageView imageView) {
RequestOptions options = new RequestOptions();
options.placeholder(R.drawable.head_home);
//切圆
options.circleCrop();
Glide.with(context).load(url).apply(options).into(imageView);
// Glide.with(context).load(url).error(R.drawable.head_home).bitmapTransform(new CropCircleTransformation(context))
// .into(imageView);
}
/**
* 加载模糊图片
*
* @param context
* @param url
* @param imageView
* @param radius
*/
public static void displayBlur(Context context, String url, ImageView imageView, int radius) {
// Glide.with(context).load(url).bitmapTransform(new BlurTransformation(context, radius))
// .into(imageView);
}
/**
* 加载文件图片
*
* @param context
* @param path
* @param iv
*/
public static void displayFile(Context context, String path, ImageView iv) {
if (path == null) {
return;
}
RequestOptions options = new RequestOptions();
options.placeholder(R.drawable.head_home);
//切圆
options.circleCrop();
Glide.with(context).load(new File((path))).apply(options).into(iv);
// Glide.with(context).load(new File(path)).bitmapTransform(new CropCircleTransformation(context)).into(iv);
}
// public static void displayGif(Context context , String path , ImageView iv){
// Glide.with(context).load(R.drawable.mgif).asGif().diskCacheStrategy(DiskCacheStrategy.SOURCE).into(imageView);
// if (path == null){
// return;
// }
// Glide.with(context).load(new File(path)).bitmapTransform( new CropCircleTransformation(context)).into(iv);
// }
public static void displayBitmap(Context context, String path, final PhotoView photoView) {
// Glide.with(context).load(path).asBitmap().into(new SimpleTarget<Bitmap>(){
//
// @Override
// public void onResourceReady(Bitmap resource, GlideAnimation<? super Bitmap> glideAnimation) {
// photoView.setImageBitmap(resource);
// }
// });
}
}
可以看到,注释的是我之前第二个依赖的写法,修改成glide 4 后的写法还是不一样的,修改好就可以了。