与nullpointerexception联系起来

时间:2013-02-25 19:27:45

标签: android nullpointerexception

我得到了一个nullpointerexception。唯一的问题是,它似乎并不存在于所有设备中,所以对我来说很奇怪..

一个想法可能是 Bitmap src可能为null?但是因为我在前面初始化它是不可能的?我猜?由于它不是在我自己的设备上发生,我只需要确定...

Bitmap bm = BitmapFactory.decodeResource(C.getResources(), resId);
Bitmap result = mark(bm);

public static Bitmap mark(Bitmap src) {
        int w = src.getWidth();
        // int w = 150;
        int h = src.getHeight();
        // int h = 150;
        Bitmap result = Bitmap.createBitmap(w, h, src.getConfig());

        Canvas canvas = new Canvas(result);
        canvas.drawBitmap(src, 0, 0, null);

        Paint paint = new Paint();
        paint.setColor(Color.GRAY);
        paint.setTypeface(font);
        paint.setTextSize(15);
        paint.setAntiAlias(true);
        canvas.drawText("Hi", 10, 15, paint);

        return result;
    }

2 个答案:

答案 0 :(得分:1)

由于我们没有堆栈跟踪,我假设您在mark()的第一行得到了例外:int w = src.getWidth();

这意味着确实src为null。如果图像无法解码,则public static Bitmap decodeResource (Resources res, int id)可以返回null。

因此,您应该深入了解可用的资源。也许在有故障的设备上缺少一个png?

答案 1 :(得分:0)

如果解码有任何问题,DecodeResources可以返回null。这可能就是这里发生的事情。