Ciao.
Sto provando ad inserire dei parametri provenienti da una app Android in un database MySQL con l'utilizzo di un Web Service ASP NET
Il Web Service ASP NET funziona correttamente, ma quando provo tramite l'applicazione Android questa va in crash, inspiegabilmente per me.
Il log cat di Eclipse:
codice:
03-02 20:22:46.200: E/SpannableStringBuilder(2095): SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero length
03-02 20:22:46.200: E/SpannableStringBuilder(2095): SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero length
03-02 20:22:46.200: E/SpannableStringBuilder(2095): SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero length
03-02 20:22:46.200: E/SpannableStringBuilder(2095): SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero length
03-02 20:22:51.966: E/AndroidRuntime(2095): FATAL EXCEPTION: main
03-02 20:22:51.966: E/AndroidRuntime(2095): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.xxxxx.xxxxx/com.xxxxx.xxxxx.callws}: java.lang.NullPointerException: println needs a message
03-02 20:22:51.966: E/AndroidRuntime(2095): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2110)
03-02 20:22:51.966: E/AndroidRuntime(2095): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2135)
03-02 20:22:51.966: E/AndroidRuntime(2095): at android.app.ActivityThread.access$700(ActivityThread.java:140)
03-02 20:22:51.966: E/AndroidRuntime(2095): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1237)
03-02 20:22:51.966: E/AndroidRuntime(2095): at android.os.Handler.dispatchMessage(Handler.java:99)
03-02 20:22:51.966: E/AndroidRuntime(2095): at android.os.Looper.loop(Looper.java:137)
03-02 20:22:51.966: E/AndroidRuntime(2095): at android.app.ActivityThread.main(ActivityThread.java:4935)
03-02 20:22:51.966: E/AndroidRuntime(2095): at java.lang.reflect.Method.invokeNative(Native Method)
03-02 20:22:51.966: E/AndroidRuntime(2095): at java.lang.reflect.Method.invoke(Method.java:511)
03-02 20:22:51.966: E/AndroidRuntime(2095): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1038)
03-02 20:22:51.966: E/AndroidRuntime(2095): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:805)
03-02 20:22:51.966: E/AndroidRuntime(2095): at dalvik.system.NativeStart.main(Native Method)
03-02 20:22:51.966: E/AndroidRuntime(2095): Caused by: java.lang.NullPointerException: println needs a message
03-02 20:22:51.966: E/AndroidRuntime(2095): at android.util.Log.println_native(Native Method)
03-02 20:22:51.966: E/AndroidRuntime(2095): at android.util.Log.e(Log.java:297)
03-02 20:22:51.966: E/AndroidRuntime(2095): at com.xxxxx.xxxxx.callws.onCreate(callws.java:66)
03-02 20:22:51.966: E/AndroidRuntime(2095): at android.app.Activity.performCreate(Activity.java:5206)
03-02 20:22:51.966: E/AndroidRuntime(2095): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1094)
03-02 20:22:51.966: E/AndroidRuntime(2095): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2074)
03-02 20:22:51.966: E/AndroidRuntime(2095): ... 11 more
Spero possiate aiutarmi, grazie.
classe callws.java
codice:
package com.xxxxx.xxxxx;
import java.net.SocketException;
import org.ksoap2.SoapEnvelope;
import org.ksoap2.serialization.SoapObject;
import org.ksoap2.serialization.SoapSerializationEnvelope;
import org.ksoap2.transport.HttpTransportSE;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.widget.TextView;
import android.widget.Toast;
public class callws extends Activity {
private static final String SOAP_ACTION = "http://www.xxxxx.com/WebService/register";
private static final String OPERATION_NAME = "register";
private static final String WSDL_TARGET_NAMESPACE = "http://www.xxxxx.com/WebServiceGoInsert";
private static final String SOAP_ADDRESS = "http://www.xxxxx.com/WebServiceGoInsert.asmx";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.ws);
SoapObject Request = new SoapObject(WSDL_TARGET_NAMESPACE,
OPERATION_NAME);
Request.addProperty("fname", String.valueOf("Peppino"));
Request.addProperty("lname", String.valueOf("DiCaprio"));
Request.addProperty("email", String.valueOf("Peppino"));
Request.addProperty("num", String.valueOf("Peppino"));
Request.addProperty("locID", String.valueOf("10"));
Request.addProperty("username", String.valueOf("Peppino"));
Request.addProperty("password", String.valueOf("Peppino"));
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(
SoapEnvelope.VER11);
envelope.dotNet = true;
envelope.setOutputSoapObject(Request);
HttpTransportSE httptransport = new HttpTransportSE(SOAP_ADDRESS);
TextView textView = new TextView(this);
setContentView(textView);
try {
httptransport.call(SOAP_ACTION, envelope);
SoapObject response = (SoapObject) envelope.getResponse();
int result = Integer.parseInt(response.getProperty(0).toString());
System.out.println(result);
if (result == 1) {
Toast.makeText(callws.this, "Dati correttamente inseriti", Toast.LENGTH_LONG).show();
} else {
Toast.makeText(callws.this, "Riprova", Toast.LENGTH_LONG).show();
}
} catch (SocketException ex) {
ex.printStackTrace();
Log.e("Error", ex.getMessage());
} catch (Exception e) {
e.printStackTrace();
Log.e("Error", e.getMessage());
}
}
}
ws.xml
codice:
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:autoLink="web"
android:linksClickable="true"
android:text="@string/hello"
android:textSize="160sp"
android:textStyle="bold" />
</LinearLayout>