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
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 to share
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 to share