Bonjour,
j'ai essayé d'établir la connexion entre un client android et un serveur openerp,
j'ai utilisé le code suivant:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
import java.util.Vector;
 
import org.xmlrpc.android.XMLRPCClient;
import org.xmlrpc.android.XMLRPCException;
 
 
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Spinner;
import android.widget.TextView;
import android.widget.Toast;
 
 
public class OpenERPDroid extends Activity {
 
	public Button login_button;
	public TextView host_tv,user_tv, pass_tv;
	public EditText host_txt,user_txt, pass_txt;
 
	public XMLRPCClient rpcClient, regClient;
	public static final String HOST = "http://localhost:8069";
	public static final String URL_COMMON = "/common";
	public static final String URL_OBJECT = "/object";
	public static final String URL_DB = "/db";
 
	public String DB_NAME = "";
	public String USERNAME = "";
	public String PASSWORD = "";
	public String user = "";
	public int uid = 0;
 
	public String partner = "";
	public int partner_id = 0;
	public Spinner db_spinner;
	public ArrayAdapter spinnerArrayAdapter;
 
	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
 
		// TEXTVIEW		
		user_tv = (TextView) findViewById(R.id.user_tv);
		pass_tv = (TextView) findViewById(R.id.pass_tv);
		// EDITTEXT
		user_txt = (EditText) findViewById(R.id.user_txt);
		pass_txt = (EditText) findViewById(R.id.pass_txt);
 
		// BUTTOn
		login_button = (Button) findViewById(R.id.login_button);
		login_button.setOnClickListener(LoginButtonClick);
 
 
		db_spinner = (Spinner) findViewById(R.id.db_spinner);
		spinnerArrayAdapter = new ArrayAdapter(this ,android.R.layout.simple_spinner_item);
		spinnerArrayAdapter.setDropDownViewResource(android.R.layout.simple_dropdown_item_1line);
		getDatabaseList();
 
		db_spinner.setAdapter(spinnerArrayAdapter);
	}
 
	public void showToastNotification(String  message) {
		Toast tmptoast = Toast.makeText(this, message, Toast.LENGTH_SHORT);
		tmptoast.show();
 
	}
 
	private OnClickListener LoginButtonClick = new OnClickListener() {
		@Override
		public void onClick(View v) {
			try {
				uid = Connect();
				if (uid > 0) {
					String succes ="successful login from "+ USERNAME+" using database "+DB_NAME;
					showToastNotification(succes);
					//RegisterTestData();
				} else {
					String fail = "bad login or password from "+ USERNAME+" using database " +DB_NAME;
					showToastNotification(fail);
				}
			} catch (Exception e) {
				Log.i("------------------ LOGIN FAILED 1", e.toString());
			}
		}
	};
	public int Connect()// String host, int port, String tinydb, String login,
						// String password)
	{
		USERNAME = user_txt.getText().toString();
		PASSWORD = pass_txt.getText().toString();
		DB_NAME = db_spinner.getSelectedItem().toString();
		rpcClient = new XMLRPCClient(HOST+URL_COMMON );
		try {
				// Connect
				user = (String) rpcClient.call("login", DB_NAME, USERNAME, PASSWORD).toString();
				Log.i("------------------CURRENT USER ID  ", user);
				Object uid1 = Integer.parseInt(user);
				if (uid1 instanceof Integer)
					return (Integer) uid1;
			return -1;
		} catch (XMLRPCException e) {
			Log.i("------------------ LOGIN FAILED-XMLRPCException", e.toString());
			return -2;
		} catch (Exception e) {
			Log.i("------------------ LOGIN FAILED-EXCEPTION", e.toString());
			return -3;
		}
	}
 
	public void  getDatabaseList() {
		 rpcClient = new XMLRPCClient(HOST+URL_DB);
			Vector<Object> params = new Vector<Object>();
			Object result = null;
			try {
				 result= rpcClient.call("list", params);
			} catch (XMLRPCException e) {
				e.printStackTrace();
			}
			Object[] a = (Object[]) result;
			for (int i = 0; i < a.length; i++) {
			    if (a[i] instanceof String){
			    	spinnerArrayAdapter.add(a[i].toString());
			    	}
				}
		Log.i("------------------ getDatabaseList","4");
		if (a.length == 0) {
			showToastNotification("No database exist");
		}
	 }
}
sachant que j'ai ajouté le package android-xmlrpc du lien: http://code.google.com/p/android-xml...ar.gz&can=2&q= j'ai toujours les erreurs suivantes:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
02-15 16:57:06.493: ERROR/AndroidRuntime(323): FATAL EXCEPTION: main
02-15 16:57:06.493: ERROR/AndroidRuntime(323): java.lang.RuntimeException: Unable to start activity ComponentInfo{mn.usi.openerpdroid/mn.usi.openerpdroid.OpenERPDroid}: java.lang.NullPointerException
02-15 16:57:06.493: ERROR/AndroidRuntime(323):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663)
02-15 16:57:06.493: ERROR/AndroidRuntime(323):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
02-15 16:57:06.493: ERROR/AndroidRuntime(323):     at android.app.ActivityThread.access$2300(ActivityThread.java:125)
02-15 16:57:06.493: ERROR/AndroidRuntime(323):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
02-15 16:57:06.493: ERROR/AndroidRuntime(323):     at android.os.Handler.dispatchMessage(Handler.java:99)
02-15 16:57:06.493: ERROR/AndroidRuntime(323):     at android.os.Looper.loop(Looper.java:123)
02-15 16:57:06.493: ERROR/AndroidRuntime(323):     at android.app.ActivityThread.main(ActivityThread.java:4627)
02-15 16:57:06.493: ERROR/AndroidRuntime(323):     at java.lang.reflect.Method.invokeNative(Native Method)
02-15 16:57:06.493: ERROR/AndroidRuntime(323):     at java.lang.reflect.Method.invoke(Method.java:521)
02-15 16:57:06.493: ERROR/AndroidRuntime(323):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
02-15 16:57:06.493: ERROR/AndroidRuntime(323):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
02-15 16:57:06.493: ERROR/AndroidRuntime(323):     at dalvik.system.NativeStart.main(Native Method)
02-15 16:57:06.493: ERROR/AndroidRuntime(323): Caused by: java.lang.NullPointerException
02-15 16:57:06.493: ERROR/AndroidRuntime(323):     at mn.usi.openerpdroid.OpenERPDroid.getDatabaseList(OpenERPDroid.java:128)
02-15 16:57:06.493: ERROR/AndroidRuntime(323):     at mn.usi.openerpdroid.OpenERPDroid.onCreate(OpenERPDroid.java:65)
02-15 16:57:06.493: ERROR/AndroidRuntime(323):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
02-15 16:57:06.493: ERROR/AndroidRuntime(323):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)
02-15 16:57:06.493: ERROR/AndroidRuntime(323):     ... 11 more
est ce que quelqu'un peut m'aider?
merci d'avance