2013-04-08 6 views
1

У меня есть NullPointerException, когда код попадает на инициализацию холста. При создании холста я передал ему пустую растровую карту.Android: Получение NullPointerException при инициализации объекта Canvas

Это мой код, где возникает ошибка nullpointerexception.

private static Bitmap createScaledBitmap(Bitmap unscaledBitmap, int dstWidth, int dstHeight, ScalingLogic scalingLogic) { 

     Rect srcRect = calculateSrcRect(unscaledBitmap.getWidth(), unscaledBitmap.getHeight(), dstWidth, dstHeight, scalingLogic); 

     Rect dstRect = calculateDstRect(unscaledBitmap.getWidth(), unscaledBitmap.getHeight(), dstWidth, dstHeight, scalingLogic); 

     Bitmap scaledBitmap = Bitmap.createBitmap(dstRect.width(), dstRect.height(), Config.ARGB_8888); 

     Canvas canvas = new Canvas(scaledBitmap); 

     canvas.drawBitmap(unscaledBitmap, srcRect, dstRect, new Paint(Paint.FILTER_BITMAP_FLAG)); 

     return scaledBitmap; 

} 

Это трассировка стека кода.

java.lang.RuntimeException: Невозможно запустить активность ComponentInfo {com.android.PhotoEditActivity}: java.lang.NullPointerException в android.app.ActivityThread.performLaunchActivity (ActivityThread.java:2663) на андроид. app.ActivityThread.handleLaunchActivity (ActivityThread.java:2679) at android.app.ActivityThread.access $ 2300 (ActivityThread.java:125) на android.app.ActivityThread $ H.handleMessage (ActivityThread.java:2033) на android .os.Handler.dispatchMessage (Handler.java:99) на android.os.Looper.loop (Looper.java:123) на android.app.ActivityThread.main (ActivityThread.java:4627) на java.lang.reflect.Method.invokeNative (собственный метод) на java.lang.reflect.Method.invoke (Method.java:521) на com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit .java: 858) на com.android.internal.os.ZygoteInit.main (ZygoteInit.java:616) в dalvik.system.NativeStart.main (нативный метод) Вызванный: java.lang.NullPointerException на андроид .graphics.Canvas (Canvas.java:82) на ImageManupulator.createScaledBitmap (ImageManupulator.java:101) на utils.ImageManupulator.ImageResizing (ImageManupulator.java:27) в android.PhotoEditActivity.updatePhoto (PhotoEditActivity.java.: 219) на android.PhotoEditActivity.access $ 0 (PhotoEditActivity.java:211)в android.PhotoEditActivity $ 2.onItemClick (PhotoEditActivity.java:279) в android.widget.AdapterView.performItemClick (AdapterView.java:284) в android.PhotoEditActivity.onCreate (PhotoEditActivity.java:128) в android.app .Instrumentation.callActivityOnCreate (Instrumentation.java:1047) в android.app.ActivityThread.performLaunchActivity (ActivityThread.java:2627) ... 11 более

+0

какая линия изображениеManupulator.java: 101? – QVDev

+1

'unscaledBitmap', вероятно, тот, который является' null'. – eightx2

+0

Вы объявляете и рисуете растровое изображение в статической функции. Просто передайте холст в параметрах функции и нарисуйте растровое изображение в функции. –

ответ

0

Где бы ваш вызов этого метода, пожалуйста, проверьте параметры unscaledBitmap и scalingLogic не являются нулевыми, поскольку эти 2 являются только объектами, используемыми в реализации метода.