微信分享失败

转载:http://blog.csdn.net/sl7122sl/article/details/41541881

E/MicroMsg.SDK.WXMediaMessage: checkArgs fail, thumbData is invalid
E/MicroMsg.SDK.WXApiImplV10: sendReq checkArgs fail

微信分享失败报的错误。说是图片的问题。
微信官方demo给的代码是
`

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

就可以解决了

你可能感兴趣的:(Android)