我试着做一个简单的应用程序来拾取一个网络服务的字符串,我已经下载了包ksopa2,金额良好和正确的数据(在互联网教程上测试),我得到下面的错误,你可以,你知道这可能是?非常感谢!
应用程序:
public class MainActivity extends Activity {
private static final String SOAP_ACTION = "http://tempuri.org/devuelveString"; //Variables
private static final String METHOD_NAME = "devuelveString";
private static final String NAMESPACE = "http://tempuri.org/";
private static final String URL = "http://localhost:52335/Service1.asmx";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button boton = (Button) findViewById(R.id.Bboton);
boton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
InvocarWs(); //call the method
}
});
}
public void InvocarWs() {
System.out.println("llama al metodo");
try {
SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);
final SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(
SoapEnvelope.VER11); // utilizar la version que
// corresponda:11 o 12
envelope.dotNet = true; // para WS ASMX, sólo si fue construido con
// .Net
envelope.setOutputSoapObject(request);
HttpTransportSE transporte = new HttpTransportSE(URL);
transporte.call(SOAP_ACTION, envelope);
SoapPrimitive resultado = (SoapPrimitive) envelope.getResponse();
System.out.println("" + resultado.toString());
} catch (Exception e) {
System.out.println("catch");
}
}}
错误logvcat
04-26 08:03:08.731: E/AndroidRuntime(536): FATAL EXCEPTION: main
04-26 08:03:08.731: E/AndroidRuntime(536): java.lang.NoClassDefFoundError: org.ksoap2.serialization.SoapObject
04-26 08:03:08.731: E/AndroidRuntime(536): at com.example.prueba.Conexion.InvocarWs(Conexion.java:24)
04-26 08:03:08.731: E/AndroidRuntime(536): at com.example.prueba.MainActivity$1.onClick(MainActivity.java:25)
04-26 08:03:08.731: E/AndroidRuntime(536): at android.view.View.performClick(View.java:2485)
04-26 08:03:08.731: E/AndroidRuntime(536): at android.view.View$PerformClick.run(View.java:9080)
04-26 08:03:08.731: E/AndroidRuntime(536): at android.os.Handler.handleCallback(Handler.java:587)
04-26 08:03:08.731: E/AndroidRuntime(536): at android.os.Handler.dispatchMessage(Handler.java:92)
04-26 08:03:08.731: E/AndroidRuntime(536): at android.os.Looper.loop(Looper.java:123)
04-26 08:03:08.731: E/AndroidRuntime(536): at android.app.ActivityThread.main(ActivityThread.java:3683)
04-26 08:03:08.731: E/AndroidRuntime(536): at java.lang.reflect.Method.invokeNative(Native Method)
04-26 08:03:08.731: E/AndroidRuntime(536): at java.lang.reflect.Method.invoke(Method.java:507)
04-26 08:03:08.731: E/AndroidRuntime(536): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
04-26 08:03:08.731: E/AndroidRuntime(536): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
04-26 08:03:08.731: E/AndroidRuntime(536): at dalvik.system.NativeStart.main(Native Method)发布于 2013-04-26 16:19:11
您需要将jar复制到项目中的libs目录。ADK从该文件夹中选取库,并将它们转换为针对Dalvik优化的类。
Creating a folder "libs" in the project
Copying the external jars in to the folder
Refresh the folder
Go to properties -> Build path -> Add Jar (not external JAR)
Clean the project
Restart Eclipse也可以试试这个,
Go to the Order and Export tab on the same popup window
Check the box against the newly added jar发布于 2013-04-26 16:27:38
只需将ksoap2 jar复制到您的libs文件夹。然后从您构建的路径将jar文件添加到您的项目中。
刷新项目并运行。它会运行得很好。
发布于 2013-04-26 17:25:33
试试这个:
步骤:
Step-01:转到项目->项目属性-> Java生成路径->库->添加外部Jars
第-02步:从目标位置选择Jar文件
Step-03:在同一窗口中,选择Libraries的下一个选项卡,即Order and Export
Step-04:订购和导出->选中您的库的复选框-> OK
不要创建任何libs文件夹,它会自动创建。
我希望这篇文章能帮助你...:)
https://stackoverflow.com/questions/16231735
复制相似问题