关于升级到友盟6.0以后,5.0以上的android手机分享到QQ空间时出现Crash

近期因公司需求,更新了友盟最新SDK,起初测试未发现问题。

APP上线后通过Crashlytics后台反馈发现部分5.0以上机型(不分品牌)在调用友盟的接口分享到QQ空间时,发生   FileNotFoundException

错误指向 

public UMImage(Context var1, File var2) {
        this.compressStyle = UMImage.CompressStyle.SCALE;
        this.compressFormat = CompressFormat.JPEG;
        this.i = 0;
        this.a(var1, var2);
    }

在询问了友盟的客服后,友盟客服小姐姐表示 恩,您反馈的问题我们已经确认,但是我们暂时没有解决方案哦。

bug肯定不能扔着不管的,用户可不管是谁的问题。

解决方案 : 源码我们肯定改不了,所以想一个折中的办法,既然在分享时图片的地址 FileNotFoundException。

这个构造方法肯定是走不通了。打开UmImage的源码发现存在另一个构造方法

  public UMImage(Context var1, String var2) {
        super(var2);
        this.compressStyle = UMImage.CompressStyle.SCALE;
        this.compressFormat = CompressFormat.JPEG;
        this.i = 0;
        this.a((Context)(new WeakReference(var1)).get(), var2);
    }

传入Activity 与 图片url 同样可以分享。

Ok,问题搞定。

(这么搞虽然一时可以解决,但是肯定不是最终解决方案,期待新版SDK能修复这个问题。也许有大神已经找到错误原因,用另外的方法解决了这个Bug,期待分享)


猜你喜欢

转载自blog.csdn.net/qq_32155895/article/details/79998143