Click here to Skip to main content
15,888,610 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
I have a problem with my project and here is my mainavtivity java
Java
package com.example.tut2;

import java.io.IOException;
import org.ksoap2.serialization.PropertyInfo;
import org.ksoap2.SoapEnvelope;
import org.ksoap2.SoapFault;
import org.ksoap2.serialization.SoapObject;
import org.ksoap2.serialization.SoapPrimitive;
import org.ksoap2.serialization.SoapSerializationEnvelope;
import org.ksoap2.transport.HttpTransportSE;
import org.xmlpull.v1.XmlPullParserException;
import android.os.AsyncTask;
import android.app.ProgressDialog;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

public class MainActivity extends Activity {

// web service ile bağlantı kurmak için gerekli parametreleri burada
// ayarlıyoruz.


//final static String NAMESPACE = "http://www.w3schools.com/webservices/";
	final static String NAMESPACE = "http://192.168.1.3/";

final static String METHOD_NAME = "Add";
//final static String METHOD_NAME = "CelsiusToFahrenheit";

//final static String SOAP_ACTION = "http://www.w3schools.com/webservices/CelsiusToFahrenheit";
final static String SOAP_ACTION = "http://192.168.1.3/Add";

//final static String URL = "http://www.w3schools.com/webservices/tempconvert.asmx";
final static String URL = "http://10.0.2.2:32772/Service1.asmx";

private TextView sonuc;
private EditText deger;
private Button hesapla;
private String x;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Kullanacağımız layout u burada gösteriyoruz.
this.setContentView(R.layout.activity_main);
// Layout elemanlarını gösteriyoruz.
deger = (EditText) findViewById(R.id.deger);
sonuc = (TextView) findViewById(R.id.flag);
hesapla = (Button) findViewById(R.id.hesapla);
// Edittext den alınan derecenin ,hesapla butonuna tıklandığında
// Fahrenheit değerine dönüşmesini istiyoruz.
hesapla.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View arg0) {

	new asyncTaskOrnek().execute();
}
});

}
public class asyncTaskOrnek extends AsyncTask<String,String,String>{
	private ProgressDialog dialog = new ProgressDialog(MainActivity.this);
	
	@Override
    protected void onPreExecute() {
           dialog.setMessage("Yükleniyor...");
          dialog.show();
}
	protected String doInBackground(String... params) {
		
		SoapObject Request = new SoapObject(NAMESPACE, METHOD_NAME);
		PropertyInfo celsuiusPI= new PropertyInfo();
        celsuiusPI.setName("a");
        celsuiusPI.setValue(deger.getText().toString());
        celsuiusPI.setType(String.class);
        Request.addProperty(celsuiusPI);
	
		//Request.addProperty("Celsius", deger.getText().toString());
	
		SoapSerializationEnvelope soapEnvelope = new SoapSerializationEnvelope(
		SoapEnvelope.VER11);
		
		soapEnvelope.dotNet = true;
	
		soapEnvelope.setOutputSoapObject(Request);
		
		HttpTransportSE aht = new HttpTransportSE(URL);
		try {
		// Ve son olarak isteğimizi gönderiyoruz.
		aht.call(SOAP_ACTION, soapEnvelope);
		} catch (IOException e) {
		e.printStackTrace();
		} catch (XmlPullParserException e) {
		e.printStackTrace();
		}
		String result;
		try {
		// Cevap olarak basit bir veri tipi beklediğimiz için,
		// cevabı SoapPrimitive nesnesi olarak alıyoruz.
		result = "Fahrenheit:"
		+ (SoapPrimitive) soapEnvelope.getResponse();
		// Aldığımız cevabı sonuc textview üzerine yazıyoruz.
		x=result;
		} catch (SoapFault e) {
		e.printStackTrace();
		}
		return x;
        
        
}
	protected void onPostExecute(String a){
          sonuc.setText(a);
          dialog.dismiss();
}
	
}
}


and here is web service
C#
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;

namespace WebService3
{
    /// <summary>
    /// Summary description for Service1
    /// </summary>
    [WebService(Namespace = "http://192.168.1.3/")]
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
    [System.ComponentModel.ToolboxItem(false)]
    // To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line. 
    // [System.Web.Script.Services.ScriptService]
    public class Service1 : System.Web.Services.WebService
    {
        [WebMethod]
        public String Add(String a)
        {
            return "68";
        }
    }
}



and here is my logcat output
01-03 05:08:27.329: W/System.err(1190): org.xmlpull.v1.XmlPullParserException: expected: START_TAG {http://schemas.xmlsoap.org/soap/envelope/}Envelope (position:START_TAG <HTML>@2:7 in java.io.InputStreamReader@b4e427a0) 
01-03 05:08:27.329: W/System.err(1190): 	at org.kxml2.io.KXmlParser.require(KXmlParser.java:2056)
01-03 05:08:27.339: W/System.err(1190): 	at org.ksoap2.SoapEnvelope.parse(SoapEnvelope.java:127)
01-03 05:08:27.339: W/System.err(1190): 	at org.ksoap2.transport.Transport.parseResponse(Transport.java:63)
01-03 05:08:27.339: W/System.err(1190): 	at org.ksoap2.transport.HttpTransportSE.call(HttpTransportSE.java:100)
01-03 05:08:27.339: W/System.err(1190): 	at com.example.tut2.MainActivity$asyncTaskOrnek.doInBackground(MainActivity.java:96)
01-03 05:08:27.339: W/System.err(1190): 	at com.example.tut2.MainActivity$asyncTaskOrnek.doInBackground(MainActivity.java:1)
01-03 05:08:27.339: W/System.err(1190): 	at android.os.AsyncTask$2.call(AsyncTask.java:288)
01-03 05:08:27.339: W/System.err(1190): 	at java.util.concurrent.FutureTask.run(FutureTask.java:237)
01-03 05:08:27.339: W/System.err(1190): 	at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
01-03 05:08:27.339: W/System.err(1190): 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
01-03 05:08:27.339: W/System.err(1190): 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
01-03 05:08:27.339: W/System.err(1190): 	at java.lang.Thread.run(Thread.java:841)
01-03 05:08:27.529: W/dalvikvm(1190): threadid=12: thread exiting with uncaught exception (group=0xb4adeba8)
01-03 05:08:28.849: E/AndroidRuntime(1190): FATAL EXCEPTION: AsyncTask #2
01-03 05:08:28.849: E/AndroidRuntime(1190): Process: com.example.tut2, PID: 1190
01-03 05:08:28.849: E/AndroidRuntime(1190): java.lang.RuntimeException: An error occured while executing doInBackground()
01-03 05:08:28.849: E/AndroidRuntime(1190): 	at android.os.AsyncTask$3.done(AsyncTask.java:300)
01-03 05:08:28.849: E/AndroidRuntime(1190): 	at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:355)
01-03 05:08:28.849: E/AndroidRuntime(1190): 	at java.util.concurrent.FutureTask.setException(FutureTask.java:222)
01-03 05:08:28.849: E/AndroidRuntime(1190): 	at java.util.concurrent.FutureTask.run(FutureTask.java:242)
01-03 05:08:28.849: E/AndroidRuntime(1190): 	at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
01-03 05:08:28.849: E/AndroidRuntime(1190): 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
01-03 05:08:28.849: E/AndroidRuntime(1190): 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
01-03 05:08:28.849: E/AndroidRuntime(1190): 	at java.lang.Thread.run(Thread.java:841)
01-03 05:08:28.849: E/AndroidRuntime(1190): Caused by: java.lang.NullPointerException
01-03 05:08:28.849: E/AndroidRuntime(1190): 	at org.ksoap2.serialization.SoapSerializationEnvelope.getResponse(SoapSerializationEnvelope.java:513)
01-03 05:08:28.849: E/AndroidRuntime(1190): 	at com.example.tut2.MainActivity$asyncTaskOrnek.doInBackground(MainActivity.java:107)
01-03 05:08:28.849: E/AndroidRuntime(1190): 	at com.example.tut2.MainActivity$asyncTaskOrnek.doInBackground(MainActivity.java:1)
01-03 05:08:28.849: E/AndroidRuntime(1190): 	at android.os.AsyncTask$2.call(AsyncTask.java:288)
01-03 05:08:28.849: E/AndroidRuntime(1190): 	at java.util.concurrent.FutureTask.run(FutureTask.java:237)
01-03 05:08:28.849: E/AndroidRuntime(1190): 	... 4 more
01-03 05:08:36.509: E/WindowManager(1190): android.view.WindowLeaked: Activity com.example.tut2.MainActivity has leaked window com.android.internal.policy.impl.PhoneWindow$DecorView{b4dc9ec8 V.E..... R.....ID 0,0-228,72} that was originally added here
01-03 05:08:36.509: E/WindowManager(1190): 	at android.view.ViewRootImpl.<init>(ViewRootImpl.java:348)
01-03 05:08:36.509: E/WindowManager(1190): 	at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:248)
01-03 05:08:36.509: E/WindowManager(1190): 	at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:69)
01-03 05:08:36.509: E/WindowManager(1190): 	at android.app.Dialog.show(Dialog.java:286)
01-03 05:08:36.509: E/WindowManager(1190): 	at com.example.tut2.MainActivity$asyncTaskOrnek.onPreExecute(MainActivity.java:73)
01-03 05:08:36.509: E/WindowManager(1190): 	at android.os.AsyncTask.executeOnExecutor(AsyncTask.java:587)
01-03 05:08:36.509: E/WindowManager(1190): 	at android.os.AsyncTask.execute(AsyncTask.java:535)
01-03 05:08:36.509: E/WindowManager(1190): 	at com.example.tut2.MainActivity$1.onClick(MainActivity.java:62)
01-03 05:08:36.509: E/WindowManager(1190): 	at android.view.View.performClick(View.java:4438)
01-03 05:08:36.509: E/WindowManager(1190): 	at android.view.View$PerformClick.run(View.java:18422)
01-03 05:08:36.509: E/WindowManager(1190): 	at android.os.Handler.handleCallback(Handler.java:733)
01-03 05:08:36.509: E/WindowManager(1190): 	at android.os.Handler.dispatchMessage(Handler.java:95)
01-03 05:08:36.509: E/WindowManager(1190): 	at android.os.Looper.loop(Looper.java:136)
01-03 05:08:36.509: E/WindowManager(1190): 	at android.app.ActivityThread.main(ActivityThread.java:5017)
01-03 05:08:36.509: E/WindowManager(1190): 	at java.lang.reflect.Method.invokeNative(Native Method)
01-03 05:08:36.509: E/WindowManager(1190): 	at java.lang.reflect.Method.invoke(Method.java:515)
01-03 05:08:36.509: E/WindowManager(1190): 	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
01-03 05:08:36.509: E/WindowManager(1190): 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
01-03 05:08:36.509: E/WindowManager(1190): 	at dalvik.system.NativeStart.main(Native Method)


Is there anyone who can help me?
Posted

1 solution

There are two three issues with your code.

1. In MainActivity.java in asyncTaskOrnek, doInBackground() method line#107 there is a null pointer exception.

2. In case of exception you are not closing aht object

3. Check this tutorial to learn how to use Dialog box in an Async Task http://www.techrepublic.com/blog/software-engineer/androids-indeterminate-progressdialog-tutorial/[^]
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900