2015-10-16 43 views
-1

當運行我的代碼時,我得到這個錯誤(「java.lang.NullPointerException:試圖調用接口方法」),我仍然無法弄清原因。Android Studio java.lang.NullPointerException:試圖調用接口方法

這裏是我的代碼:

@Override 
public void pointerReleased(int x, int y, int x2, int y2) { 
    bDrag=false; 
    selector.pointerReleased(x, y, x2, y2); 
    { 
     IDisplayTransformation dt=mapControl.getDisplay().getDisplayTransformation(); 

     if (canMoveMap) 
     { 
      if (x>(dt.getDeviceFrame().getXMax()*0.9) || x<(dt.getDeviceFrame().getXMax()*0.1) || 
        y>(dt.getDeviceFrame().getYMax()*0.9) || y<(dt.getDeviceFrame().getYMax()*0.1)) 
      { 
       Point pt=new Point(); 
       dt.toMapPoint(x, y, pt); 
       IEnvelope env=mapControl.getExtent(); 
       env.centerAt(pt); 
       mapControl.refresh(env); 
       return; 
      } 
     } 


     Point pt=new Point(selector.getX(),selector.getY()); 
     Point result=new Point(); 
     dt.toMapPoint(pt, result); 
     pts.add(result); 
     mapControl.repaint(); 
    } 
} 

錯誤消息:

10-16 16:53:28.566 4185-4185/ E/MessageQueue-JNI: java.lang.NullPointerException: Attempt to invoke interface method 'void cn.creable.gridgis.display.IDisplayTransformation.toMapPoint(int, int, cn.creable.gridgis.geometry.IPoint)' on a null object reference 
10-16 16:53:28.566 4185-4185/ E/MessageQueue-JNI:  at cn.creable.gridgis.controls.PanTool.pointerPressed(Unknown Source) 
10-16 16:53:28.566 4185-4185/ E/MessageQueue-JNI:  at cn.creable.gridgis.controls.MapControl.pointerPressed(Unknown Source) 
10-16 16:53:28.566 4185-4185/ E/MessageQueue-JNI:  at cn.creable.gridgis.controls.MapView.onTouchEvent(Unknown Source) 
+0

你調試過嗎?我想dt是空的。 – abbath

回答

0

'DT' 爲空。你應該在你的代碼周圍添加一個空的檢查,以免它崩潰。我無法告訴你爲什麼mapControl.getDisplay().getDisplayTransformation();返回null。

+0

或者mapControl可能不會被實例化:) – DGN

相關問題