내 프로젝트를 에뮬레이터에서 내 프로젝트를 실행하려고하면 다음과 같은 코드가 생깁니다. 다음과 같은 오류가 발생합니다. "불행히도 앱이 작동을 멈췄습니다." 내 logcat은 아래와 같습니다. 이 오류를 푸는데 나를 도와주세요. 여기ksoap2를 사용하여 안드로이드에서 asmx 웹 서비스에 액세스
package com.example.abc;
import android.os.Bundle;
import android.app.Activity;
import android.widget.Button;
import android.widget.TextView;
import org.ksoap2.SoapEnvelope;
import org.ksoap2.serialization.SoapObject;
import org.ksoap2.serialization.SoapPrimitive;
import org.ksoap2.serialization.SoapSerializationEnvelope;
import org.ksoap2.transport.HttpTransportSE;
public class MainActivity extends Activity {
private static final String SOAP_ACTION = "http://tempuri.org/hello";
private static final String METHOD_NAME = "hello";
private static final String NAMESPACE = "http://tempuri.org/";
private static final String URL = "http://127.0.0.1:80/WEBSITE/Webservice.asmx";
TextView tv;
Button btn;
TextView tv1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tv = (TextView) findViewById(R.id.lblView);
try{
//Request
SoapObject Request = new SoapObject(NAMESPACE,METHOD_NAME);
Request.addProperty("abc","Rajax");
SoapSerializationEnvelope soapEnvelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
soapEnvelope.dotNet=true;
soapEnvelope.setOutputSoapObject(Request);
HttpTransportSE aht = new HttpTransportSE(URL);
aht.call(SOAP_ACTION, soapEnvelope);
SoapPrimitive resultString=(SoapPrimitive)soapEnvelope.getResponse();
//display1.setText(resultString.toString());
tv.setText("Status : "+resultString.toString());
}
catch(Exception e)
{
tv.setText(e.getMessage());
}
}
}
"ksoap2 - 안드로이드 - 조립 2.4 단지 -에 - dependencies.jar"사용하고 여기에 내 XML
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >
<EditText
android:id="@+id/txtName"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:ems="10" >
<requestFocus />
</EditText>
<Button
android:id="@+id/btnInvoke"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignRight="@+id/txtName"
android:layout_below="@+id/txtName"
android:text="Invoke" />
<TextView
android:id="@+id/lblView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignRight="@+id/btnInvoke"
android:layout_below="@+id/btnInvoke"
android:text="Large Text"
android:textAppearance="?android:attr/textAppearanceLarge" />
</RelativeLayout>
내 매니페스트
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.abc"
android:versionCode="1"
android:versionName="1.0" >
<uses-permission android:name="android.permission.INTERNET"/>
<uses-sdk android:minSdkVersion="8" android:targetSdkVersion="18"/>
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.example.abc.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
입니다 여기 내 로그캣입니다
03-26 23:56:34.949: E/dalvikvm(816): Could not find class 'org.ksoap2.serialization.SoapObject', referenced from method com.example.abc.MainActivity.onCreate
03-26 23:56:34.949: W/dalvikvm(816): VFY: unable to resolve new-instance 729 (Lorg/ksoap2/serialization/SoapObject;) in Lcom/example/abc/MainActivity;
03-26 23:56:34.970: D/dalvikvm(816): VFY: replacing opcode 0x22 at 0x0013
03-26 23:56:34.990: D/dalvikvm(816): DexOpt: unable to opt direct call 0x12d2 at 0x19 in Lcom/example/abc/MainActivity;.onCreate
03-26 23:56:35.010: D/dalvikvm(816): DexOpt: unable to opt direct call 0x12d5 at 0x27 in Lcom/example/abc/MainActivity;.onCreate
03-26 23:56:35.029: D/dalvikvm(816): DexOpt: unable to opt direct call 0x12d8 at 0x34 in Lcom/example/abc/MainActivity;.onCreate
03-26 23:56:36.630: D/AndroidRuntime(816): Shutting down VM
03-26 23:56:36.630: W/dalvikvm(816): threadid=1: thread exiting with uncaught exception (group=0x414c4700)
03-26 23:56:36.731: E/AndroidRuntime(816): FATAL EXCEPTION: main
03-26 23:56:36.731: E/AndroidRuntime(816): java.lang.NoClassDefFoundError: org.ksoap2.serialization.SoapObject
03-26 23:56:36.731: E/AndroidRuntime(816): at com.example.abc.MainActivity.onCreate(MainActivity.java:34)
03-26 23:56:36.731: E/AndroidRuntime(816): at android.app.Activity.performCreate(Activity.java:5133)
03-26 23:56:36.731: E/AndroidRuntime(816): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
03-26 23:56:36.731: E/AndroidRuntime(816): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2175)
03-26 23:56:36.731: E/AndroidRuntime(816): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2261)
03-26 23:56:36.731: E/AndroidRuntime(816): at android.app.ActivityThread.access$600(ActivityThread.java:141)
03-26 23:56:36.731: E/AndroidRuntime(816): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256)
03-26 23:56:36.731: E/AndroidRuntime(816): at android.os.Handler.dispatchMessage(Handler.java:99)
03-26 23:56:36.731: E/AndroidRuntime(816): at android.os.Looper.loop(Looper.java:137)
03-26 23:56:36.731: E/AndroidRuntime(816): at android.app.ActivityThread.main(ActivityThread.java:5103)
03-26 23:56:36.731: E/AndroidRuntime(816): at java.lang.reflect.Method.invokeNative(Native Method)
03-26 23:56:36.731: E/AndroidRuntime(816): at java.lang.reflect.Method.invoke(Method.java:525)
03-26 23:56:36.731: E/AndroidRuntime(816): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
03-26 23:56:36.731: E/AndroidRuntime(816): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
03-26 23:56:36.731: E/AndroidRuntime(816): at dalvik.system.NativeStart.main(Native Method)
03-27 00:15:25.310: E/dalvikvm(850): Could not find class 'org.ksoap2.serialization.SoapObject', referenced from method com.example.abc.MainActivity.onCreate
03-27 00:15:25.310: W/dalvikvm(850): VFY: unable to resolve new-instance 729 (Lorg/ksoap2/serialization/SoapObject;) in Lcom/example/abc/MainActivity;
03-27 00:15:25.310: D/dalvikvm(850): VFY: replacing opcode 0x22 at 0x0013
03-27 00:15:25.350: D/dalvikvm(850): DexOpt: unable to opt direct call 0x12d2 at 0x19 in Lcom/example/abc/MainActivity;.onCreate
03-27 00:15:25.350: D/dalvikvm(850): DexOpt: unable to opt direct call 0x12d5 at 0x27 in Lcom/example/abc/MainActivity;.onCreate
03-27 00:15:25.400: D/dalvikvm(850): DexOpt: unable to opt direct call 0x12d8 at 0x34 in Lcom/example/abc/MainActivity;.onCreate
03-27 00:15:26.050: D/AndroidRuntime(850): Shutting down VM
03-27 00:15:26.050: W/dalvikvm(850): threadid=1: thread exiting with uncaught exception (group=0x414c4700)
03-27 00:15:26.070: E/AndroidRuntime(850): FATAL EXCEPTION: main
03-27 00:15:26.070: E/AndroidRuntime(850): java.lang.NoClassDefFoundError: org.ksoap2.serialization.SoapObject
03-27 00:15:26.070: E/AndroidRuntime(850): at com.example.abc.MainActivity.onCreate(MainActivity.java:34)
03-27 00:15:26.070: E/AndroidRuntime(850): at android.app.Activity.performCreate(Activity.java:5133)
03-27 00:15:26.070: E/AndroidRuntime(850): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
03-27 00:15:26.070: E/AndroidRuntime(850): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2175)
03-27 00:15:26.070: E/AndroidRuntime(850): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2261)
03-27 00:15:26.070: E/AndroidRuntime(850): at android.app.ActivityThread.access$600(ActivityThread.java:141)
03-27 00:15:26.070: E/AndroidRuntime(850): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256)
03-27 00:15:26.070: E/AndroidRuntime(850): at android.os.Handler.dispatchMessage(Handler.java:99)
03-27 00:15:26.070: E/AndroidRuntime(850): at android.os.Looper.loop(Looper.java:137)
03-27 00:15:26.070: E/AndroidRuntime(850): at android.app.ActivityThread.main(ActivityThread.java:5103)
03-27 00:15:26.070: E/AndroidRuntime(850): at java.lang.reflect.Method.invokeNative(Native Method)
03-27 00:15:26.070: E/AndroidRuntime(850): at java.lang.reflect.Method.invoke(Method.java:525)
03-27 00:15:26.070: E/AndroidRuntime(850): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
03-27 00:15:26.070: E/AndroidRuntime(850): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
03-27 00:15:26.070: E/AndroidRuntime(850): at dalvik.system.NativeStart.main(Native Method)
그런데, 당신은 좋은 생각이 아닌 UI 스레드에서 네트워크를하고 있습니다. 네트워크 연산을 위해'AsyncTask' 또는'Handler'를 사용하십시오. 자세한 내용은 [this] (http://developer.android.com/training/basics/network-ops/connecting.html)을 읽어보십시오. –