Java.lang.NullPointerException: println needs soapy message

what's my source code

private static final String URL = "http://footballpool.dataaccess.eu/data/info.wso";
private static final String NAME_SPACE = "http://footballpool.dataaccess.eu";
private static final String METHODE_NAME = "TopGoalScorers";
private static final String SOAP_ACTION = NAME_SPACE + "/" + METHODE_NAME;


SoapObject request = new SoapObject(NAME_SPACE, METHODE_NAME);

    request.addProperty("iTopN", 10);

    SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(
            SoapEnvelope.VER11);

    envelope.setOutputSoapObject(request);

    HttpTransportSE transporte = new HttpTransportSE(URL);


    SoapObject soapObject = null;
    try {
        transporte.call("http://footballpool.dataaccess.eu/data/info.wso/TopGoalScorers", envelope);

        soapObject = (SoapObject) envelope.getResponse();

    } catch (Exception e) {
        Log.e("Soap", e.getMessage());
    }

      

and I am giving this error:

> 01-29 10:44:17.877: E/AndroidRuntime(10704): FATAL EXCEPTION: main
01-29 10:44:17.877: E/AndroidRuntime(10704): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.android.serviosweb/com.android.serviosweb.MainActivity}: java.lang.NullPointerException: println needs a message
01-29 10:44:17.877: E/AndroidRuntime(10704):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2180)
01-29 10:44:17.877: E/AndroidRuntime(10704):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)
01-29 10:44:17.877: E/AndroidRuntime(10704):    at android.app.ActivityThread.access$600(ActivityThread.java:141)
01-29 10:44:17.877: E/AndroidRuntime(10704):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234)
01-29 10:44:17.877: E/AndroidRuntime(10704):    at android.os.Handler.dispatchMessage(Handler.java:99)
01-29 10:44:17.877: E/AndroidRuntime(10704):    at android.os.Looper.loop(Looper.java:137)
01-29 10:44:17.877: E/AndroidRuntime(10704):    at android.app.ActivityThread.main(ActivityThread.java:5039)
01-29 10:44:17.877: E/AndroidRuntime(10704):    at java.lang.reflect.Method.invokeNative(Native Method)
01-29 10:44:17.877: E/AndroidRuntime(10704):    at java.lang.reflect.Method.invoke(Method.java:511)
01-29 10:44:17.877: E/AndroidRuntime(10704):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
01-29 10:44:17.877: E/AndroidRuntime(10704):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
01-29 10:44:17.877: E/AndroidRuntime(10704):    at dalvik.system.NativeStart.main(Native Method)
01-29 10:44:17.877: E/AndroidRuntime(10704): Caused by: java.lang.NullPointerException: println needs a message
01-29 10:44:17.877: E/AndroidRuntime(10704):    at android.util.Log.println_native(Native Method)
01-29 10:44:17.877: E/AndroidRuntime(10704):    at android.util.Log.e(Log.java:231)
01-29 10:44:17.877: E/AndroidRuntime(10704):    at com.android.serviosweb.MainActivity.onCreate(MainActivity.java:44)
01-29 10:44:17.877: E/AndroidRuntime(10704):    at android.app.Activity.performCreate(Activity.java:5104)
01-29 10:44:17.877: E/AndroidRuntime(10704):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080)
01-29 10:44:17.877: E/AndroidRuntime(10704):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144)
01-29 10:44:17.877: E/AndroidRuntime(10704):    ... 11 more

      

somebody help me

+3


source to share


4 answers


The catch statement uses:



String errorMessage = (ex.getMessage()==null)?"Message is empty":ex.getMessage();
Log.e("Message:",errorMessage );  

      

+3


source


In a trick, use:



String err = (ex.getMessage()==null)?"SD Card failed":ex.getMessage();
Log.e("sdcard-err2:",err);  

      

0


source


Your problem is pretty simple. There is an Exception in your try block. Now Catch-Block tries to handle this exception by printing an exception message in your log. It is unlikely that the message you want to print is not set and your Logger (sys.out.print) is not capable of printing anything (null).

For now, you want to print StackTrace as Mohamed_AbdAllah suggested. You need to get StackTrace as String Guava and Apache Commons have methods for this purpose. Easy assembly in your own way:

StackTraceElement[] stack = e.getStackTrace();
StringTrace = "";
for(StackTraceElement line : stack)
{
   Trace += line.toString();
}

    Log.e("Soap",Trace);

      

0


source


Use this code: (For example)

        SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);

        PropertyInfo username = new PropertyInfo();
        username.setName("username");
        username.setValue("google");
        username.setType(String.class);
        username.setNamespace(NAMESPACE);
        request.addProperty(username);

      

0


source







All Articles