日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

微信分享出错问题,MicroMsg.SDK.WXMediaMessage: checkArgs fail, thumbData is invalid

發布時間:2023/12/14 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 微信分享出错问题,MicroMsg.SDK.WXMediaMessage: checkArgs fail, thumbData is invalid 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

之前做了個微信分享,隔了一段時間突然發現提示下面錯誤:

MicroMsg.SDK.WXMediaMessage: checkArgs fail, thumbData is invalid

MicroMsg.SDK.WXApiImplV10: sendReq checkArgs fail

網上查詢了目前看到兩種解決方法:

1、分享圖片大小不能大于32kb。

2、修改以下代碼:

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();
????????}

事實證明,這兩種方法并沒有解決我的問題。

在使用第一種方法時并不能解決我的問題,在使用第二種方法時,按照官方demo的方法把圖片的大小設置成150*150之后是可以的(不管以前大小多少),我們的圖標是300*300并且是需要網絡獲取,大小也超過了32kb。

我是通過下面這種方法解決的,在獲取網絡圖標的時候使用demo中Util類中getHtmlByteArray(final String url)方法,直接把網絡數據轉換成byte[]格式,然后轉換成Bitmap,

BitmapFactory.decodeByteArray(Util.getHtmlByteArray(imgUrl),300,300)

然后在設置的時候使用

mediaMessage.thumbData = Util.bmpToByteArray(bitmap, true);

這樣在分享時就不會報錯


總結

以上是生活随笔為你收集整理的微信分享出错问题,MicroMsg.SDK.WXMediaMessage: checkArgs fail, thumbData is invalid的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。