Android decodeByteArray(数据[0]返回空PictureCallback

Android decodeByteArray(数据[0]返回空PictureCallback,android,Android,我有以下回复 PictureCallback jpegCallback = new PictureCallback() { public void onPictureTaken(byte[] data, Camera camera) { new processImage().execute(data); } }; 任务是,这里的bmp总是空的,有什么想法吗 private class processImage extend

我有以下回复

    PictureCallback jpegCallback = new PictureCallback() {
        public void onPictureTaken(byte[] data, Camera camera) {
            new processImage().execute(data);
        }
    };
任务是,这里的bmp总是空的,有什么想法吗

private class processImage extends AsyncTask<byte[], Void, Bitmap> {

    @Override
    protected Bitmap doInBackground(byte[]... data) {


        Bitmap bmp = BitmapFactory.decodeByteArray(data[0], 0, data.length);

        //Do stuff with the bmp    


    }
...
...
}
私有类processImage扩展异步任务{
@凌驾
受保护位图doInBackground(字节[]…数据){
位图bmp=BitmapFactory.decodeByteArray(数据[0],0,数据.length);
//用bmp做一些事情
}
...
...
}

在我看来,你没有正确调用
decodeByteArray
函数。它应该是
BitmapFactory.decodeByteArray(数据[0],0,数据[0]。长度)
在我看来,你没有正确调用
decodeByteArray
函数。它应该是
BitmapFactory.decodeByteArray(数据[0],0,数据[0]。长度)

实际上
data
是一个varargs参数,因此
data[0]
是第一个
byte[]
。最后一个参数可能应该是
data[0]。长度
。您是正确的,错误是给定长度时,应该是data[0].length,我没有看到varargs参数,很抱歉。我也发现了问题,你是对的,这是数据[0]。length.No problem。不妨编辑答案来修复它,以便@AdroidFreak可以接受它。实际上
data
是varargs参数,所以
data[0]
是第一个
字节[]
。最后一个参数可能应该是
数据[0]。长度
。您是对的,错误是给定长度时,应该是数据[0]。长度,我没有看到varargs参数,抱歉。我刚刚发现问题,您是对的,是数据[0].length.No problem。不妨编辑答案以修复它,以便@AdroidFreak可以接受它。