java.lang.NullPointerException:println需要消息soap
这是我的源代码java.lang.NullPointerException:println需要消息soap,java,android,soap,httptransportse,Java,Android,Soap,Httptransportse,这是我的源代码 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 fin
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());
}
我给这个错误:
> 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
请任何人帮助我在catch语句中使用:
String errorMessage = (ex.getMessage()==null)?"Message is empty":ex.getMessage();
Log.e("Message:",errorMessage );
在catch中,使用:
String err = (ex.getMessage()==null)?"SD Card failed":ex.getMessage();
Log.e("sdcard-err2:",err);
你的问题很简单。在try块中引发了异常。Catch块现在试图通过将异常消息打印到日志中来处理这些异常。不太可能未设置要打印的消息,并且您的记录器(sys.out.print)无法打印任何内容(空值) 只要你想像穆罕默德·阿卜杜拉建议的那样打印StackTrace。您需要获取StackTrace,因为字符串Guava和ApacheCommons具有用于这些目的的方法。一个简单的构建方法是:
StackTraceElement[] stack = e.getStackTrace();
StringTrace = "";
for(StackTraceElement line : stack)
{
Trace += line.toString();
}
Log.e("Soap",Trace);
使用以下代码:(例如)
谢谢你,结果是:[Ljava.lang.StackTraceeElement;@41501db8I更新了我的原始答案。谢谢你,现在发布到这里的错误太大了,你面临着一个不同的错误,你真正的错误。我不在Android系统中,但我想这可能是答案
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);