微信SDK图片分享(checkArgs fail, thumbData is invalid)

摘要:
微信官方网站。SendMessageToWX.Req.WXSceneSession;api.sendReq;//finish();}捕获{e.printStackTrace();Toast.makeText.show();}break;然而,在实际使用过程中,总是会报告这样的错误,微信的共享界面无法调用。05-0610:21:35.276:电子邮件。SDK。WXMediaMessage:checkArgsfail,thumbData无效似乎是图像处理中的问题。有一个对象将位图对象转换为字节数据字节。

微信官网给的Demo中。图片的分享例子他是这么描述的:

                            String url = "http://pic2.nipic.com/20090506/1478953_125254084_2.jpg";
                                
                            try{
                                WXImageObject imgObj = new WXImageObject();
                                imgObj.imageUrl = url;
                                
                                WXMediaMessage msg = new WXMediaMessage();
                                msg.mediaObject = imgObj;

                                Bitmap bmp = BitmapFactory.decodeStream(new URL(url).openStream());
                                Bitmap thumbBmp = Bitmap.createScaledBitmap(bmp, THUMB_SIZE, THUMB_SIZE, true);
                                bmp.recycle();
                                msg.thumbData = Util.bmpToByteArray(thumbBmp, true);
                                
                                SendMessageToWX.Req req = new SendMessageToWX.Req();
                                req.transaction = buildTransaction("img");
                                req.message = msg;
                                req.scene = isTimelineCb.isChecked() ? SendMessageToWX.Req.WXSceneTimeline : SendMessageToWX.Req.WXSceneSession;
                                api.sendReq(req);
                                
                                //finish();
                            } catch(Exception e) {
                                e.printStackTrace();
                                Toast.makeText(SendToWXActivity.this, "Error msg"+e.toString(), 1000).show();
                            }
                    
                            break;
                        

 而在实际的使用过程中,总是报这样的一个错误,怎么也调用不到微信的分享界面。


05-06 10:21:35.276: E/MicroMsg.SDK.WXMediaMessage(19273): checkArgs fail, thumbData is invalid

 好像是图片处理那边出现了问题。细看这个代码。里面有一个将bitmap对象转化成byte数据字节的对象。原先的代码是这样的如下所示:

     public static byte[] bmpToByteArray(final Bitmap bmp, final boolean needRecycle) {

        ByteArrayOutputStream output = new ByteArrayOutputStream();
        bmp.compress(CompressFormat.PNG, 100, output);
        if (needRecycle) {
            bmp.recycle();
        }
        
        byte[] result = output.toByteArray();
        try {
            output.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
        
        return result;
    }

 现将其改成如下所示的:

     public static byte[] bmpToByteArray(final Bitmap bmp, final boolean needRecycle) {

        int i;
        int j;
        if (bmp.getHeight() > bmp.getWidth()) {
            i = bmp.getWidth();
            j = bmp.getWidth();
        } else {
            i = bmp.getHeight();
            j = bmp.getHeight();
        }
        
        Bitmap localBitmap = Bitmap.createBitmap(i, j, Bitmap.Config.RGB_565);
        Canvas localCanvas = new Canvas(localBitmap);
        
        while (true) {
            localCanvas.drawBitmap(bmp, new Rect(0, 0, i, j), new Rect(0, 0,i, j), null);
            if (needRecycle)
                bmp.recycle();
            ByteArrayOutputStream localByteArrayOutputStream = new ByteArrayOutputStream();
            localBitmap.compress(Bitmap.CompressFormat.JPEG, 100,
                    localByteArrayOutputStream);
            localBitmap.recycle();
            byte[] arrayOfByte = localByteArrayOutputStream.toByteArray();
            try {
                localByteArrayOutputStream.close();
                return arrayOfByte;
            } catch (Exception e) {
                //F.out(e);
            }
            i = bmp.getHeight();
            j = bmp.getHeight();
        }
    }

现在就可以对图片进行分享了。 有更好的解决办法,希望可以留言 !!!

还有一个文章写得不错: http://www.eoeandroid.com/thread-310556-1-1.html

 源码下载地址:http://pan.baidu.com/s/1dDEbPvj

                    iqct


免责声明:文章转载自《微信SDK图片分享(checkArgs fail, thumbData is invalid)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇ESP8266使用详解H5网页在ios,android,微信中打开手机中的地图导航下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Android 微信支付,授权,分享回调区分记录

我们做项目中避免不了和微信打交道,其中最常用的也就是授权登录与分享和支付了。 本篇文章记录这三个功能同时使用的时候,回调怎么来区分。因为每个功能都有自己的回调状态。前期集成与发送,资料很多了就不在这里记录了。 接收回调首先要写一个WXEntryActivity,实现IWXAPIEventHandler接口。 activity的oncreate方法中实例化I...

微信内 H5 页面自定义分享

起源: 最近公司在做一个活动的h5页面,在微信内打开时需要进行微信授权,然后后端会重定向到这个页面并且携带了一些参数(openid等)。问题是点击微信的原生分享时,会把携带的这些参数一起分享出去,等于把用户信息泄露了。所以为了解决这个问题,只能实现自定义微信分享的功能,可以自定义分享的地址、标题、图标还有简介。 事先需要做的: 1.微信公众号:必须是经过...

友盟官方文档

#  产品概述 关于分享和授权的sdk接口,我们在v4.4.0做出了巨大的改变,精简了接口调用的代码。并将分享授权,与评论等功能做出了隔离,使结构更加清晰。所以本版本的功能也只有分享与授权并无其他功能,请开发者注意。 注意:本文示例代码只有分享与授权功能,并对接口进行了调整,如需要原功能的开发者,请继续使用v4.3.0版本。 # 获取友盟Appkey 如果你...

微信分享之分享图片/分享图标不能显示

微信分享之分享图标/分享图片不能显示 主要是几个问题: 1、保证分享接口调用成功和分享路径的正确 2、保证分享图片的路径不要还用中文或全角字符 3、保证文案中不要含有红包、领取等敏感字符。 分享接口在未加载成功的时候,会出现错误。 做二种处理: 1、等页面加载完毕才调用分享接口,缺点,页面打开比较慢,用户体验不好 2、分析微信分享的实质,分享表示是页面的t...

记录uniapp的APP端分享到微信好友,链接为小程序页面,分享失败的BUG

记录uni-app的APP端分享到微信好友,链接为小程序页面,分享失败的BUG 分享到微信好友,链接为小程序端报错 16:59:19.617 fail:{"errMsg":"share:fail [Share微信分享:-6]send, http://ask.dcloud.net.cn/article/287","errCode":-100,"code":-...

jweixin-1.1.0.js微信接口“分享给朋友”文字和图片配置

在npm官网找到了:微信官方 js-sdk CommonJS 版https://www.npmjs.com/package/weixin-js-sdk 步骤一:引入JS文件在需要调用JS接口的页面引入如下JS文件,(支持https):http://res.wx.qq.com/open/js/jweixin-1.0.0.js备注:支持使用 AMD/CMD 标...