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
Zouhair
source
to share
4 answers
The catch statement uses:
String errorMessage = (ex.getMessage()==null)?"Message is empty":ex.getMessage();
Log.e("Message:",errorMessage );
+3
Raja asthana
source
to share
In a trick, use:
String err = (ex.getMessage()==null)?"SD Card failed":ex.getMessage();
Log.e("sdcard-err2:",err);
0
NewStack
source
to share
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
Johannes
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
AA
source
to share