public void onCreate() {
mDescriptionHandler = new DescriptionHandler();
addRequestHandler("/onvif*", mDescriptionHandler);
}
when i use this "new DescriptionHandler()" class in B4A, get ERRO ,and app close:
java.lang.NullPointerException: Attempt to invoke virtual method 'void net.majorkernelpanic.http.TinyHttpServer$MHttpRequestHandlerRegistry.register(java.lang.String, org.apache.http.protocol.HttpRequestHandler)' on a null object reference
	
	
	
	
	
	
	
		
			
			
			
			
			
		
	
	
	
		
	
	
		
	
			
			mDescriptionHandler = new DescriptionHandler();
addRequestHandler("/onvif*", mDescriptionHandler);
}
when i use this "new DescriptionHandler()" class in B4A, get ERRO ,and app close:
java.lang.NullPointerException: Attempt to invoke virtual method 'void net.majorkernelpanic.http.TinyHttpServer$MHttpRequestHandlerRegistry.register(java.lang.String, org.apache.http.protocol.HttpRequestHandler)' on a null object reference
			
				Java:
			
		
		
		package net.majorkernelpanic.http;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.net.Socket;
import java.net.URLDecoder;
import java.nio.charset.Charset;
import org.apache.http.HttpEntityEnclosingRequest;
import org.apache.http.HttpException;
import org.apache.http.HttpRequest;
import org.apache.http.HttpResponse;
import org.apache.http.HttpStatus;
import org.apache.http.RequestLine;
import org.apache.http.entity.ByteArrayEntity;
import org.apache.http.protocol.HttpContext;
import org.apache.http.protocol.HttpRequestHandler;
import org.apache.http.util.EntityUtils;
import anywheresoftware.b4a.BA;
import net.majorkernelpanic.onvif.DeviceBackBean;
import net.majorkernelpanic.spydroid.SpydroidApplication;
import net.majorkernelpanic.streaming.Session;
public class DescriptionHandler implements HttpRequestHandler {
         
     public static final String ONVIF_GET_DEVICE_INFORMATION_REQUEST = "GetDeviceInformation";
       
        public static final String ONVIF_GET_STREAM_URI_REQUEST = "GetStreamUri";
     
        public static final String ONVIF_GET_PROFILES_REQUEST = "GetProfiles";
      
        public static final String ONVIF_GET_CAPABILITIES_REQUEST = "GetCapabilities";
       
        public static final String ONVIF_GET_VIDEO_ENCODER_CONFIGURATION_REQUEST = "GetVideoEncoderConfiguration";
       
        public static final String ONVIF_GET_VIDEO_ENCODER_CONFIGURATION_OPTIONS_REQUEST = "GetVideoEncoderConfigurationOptions";
        private final SessionInfo[] mSessionInfoList = new SessionInfo[10];
        private class SessionInfo {
            public Session session;
            public String uri;
            public String description;
        }
        private SpydroidApplication application = SpydroidApplication.getInstance();
        public DescriptionHandler() {
         
            for (int i = 0; i < 10; ++i) {
                mSessionInfoList[i] = new SessionInfo();
            }
        }
      
        @Override
        public void handle(HttpRequest httpRequest, HttpResponse httpResponse,
                           HttpContext httpContext) throws HttpException, IOException {
            Socket socket = ((TinyHttpServer.MHttpContext) httpContext).getSocket();
            String uri = httpRequest.getRequestLine().getUri();
            BA.Log("handle request of " + uri);
            RequestLine requestLine = httpRequest.getRequestLine();
            String requestMethod = requestLine.getMethod();
            if (requestMethod.equals("POST")) {
                final String requestUrl = URLDecoder.decode(requestLine.getUri());
                BA.Log("the request url are " + requestUrl);
                HttpEntityEnclosingRequest post = (HttpEntityEnclosingRequest) httpRequest;
                byte[] entityContent = EntityUtils.toByteArray(post.getEntity());
                String content = new String(entityContent, Charset.forName("UTF-8"));
                DeviceBackBean deviceBackBean = application.getDeviceBackBean();
                BA.Log("the request back data are " + deviceBackBean.toString());
             
                String backContent = "";
                
                if (content.contains(ONVIF_GET_DEVICE_INFORMATION_REQUEST)) {
                    // 
                    BA.Log("handle the request of get device information");
                    
                    backContent = "";
                } else if (content.contains(ONVIF_GET_STREAM_URI_REQUEST)) {
                    BA.Log("handle the request of get stream url");
                    backContent = "";
                } else if (content.contains(ONVIF_GET_PROFILES_REQUEST)) {
                    BA.Log("handle the request of get device profile");
                    backContent = "";
                } else {
                    // TODO: do not handle this response
                    return;
                }
                BA.Log("the response info are " + backContent);
                final String finalBackContent = backContent;
                ByteArrayEntity backBody = new ByteArrayEntity(finalBackContent.getBytes());
                ByteArrayInputStream backInputStream = (ByteArrayInputStream) backBody.getContent();
                httpResponse.setStatusCode(HttpStatus.SC_OK);
                backBody.setContentType("application/soap+xml; charset=UTF-8");
                httpResponse.setEntity(backBody);
            }
        }
    }