Bonsoir,

J'ai un soucis avec un contentprovider qui me retourne aucun résultat sur Android 2.3 (Nexus One) et qui me retourne bien ce qu'il faut sur Android 4.0.

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
 
@Override
public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder) {
		Log.d("ContentProvider", "query select uri=" + uri);
 
		SQLiteQueryBuilder queryBuilder = new SQLiteQueryBuilder();
		String part1 = "";
		String part2 = "";
		int uriType = sURIMatcher.match(uri);
		switch (uriType) {
 
		case VEH_VOITURE:
			part1 = SQLiteQueryBuilder.buildQueryString(true, VeHSQLite.TABLE_VEH_VOITURE, projection, selection, null, null, sortOrder, null);
			part2 = SQLiteQueryBuilder.buildQueryString(true, VeHSQLite.TABLE_VEH_VOITURE_CUSTOM, projection, selection, null, null, sortOrder, null);
			break;
		case VEH_CAMION:
			part1 = SQLiteQueryBuilder.buildQueryString(true, VeHSQLite.TABLE_VEH_CAMION, projection, selection, null, null, sortOrder, null);
			part2 = SQLiteQueryBuilder.buildQueryString(true, VeHSQLite.TABLE_VEH_CAMION_CUSTOM, projection, selection, null, null, sortOrder, null);
			break;
		default:
			throw new IllegalArgumentException("Unknown URI");
		}
 
 
		String query = queryBuilder.buildUnionQuery(new String[]{part1, part2}, sortOrder, null);
 
		Log.d("ContentProvider", "query select sql=" + query);
 
		SQLiteDatabase db =  mDB.getReadableDatabase();
		Cursor cursor = db.rawQuery(query, null); 
 
 
		cursor.setNotificationUri(getContext().getContentResolver(), uri);
		return cursor;
	}
Donc sur Android 4.2, aucun soucis mes loaders sont bien initialisées, mais sur Android 2.3, rien
En y allant au debug, les requêtes sont bien envoyées (et bien formées), mais sur Android 2.3, quand j'inspecte la variable "cursor", j'ai la variable "mStackTrace" j'ai "android.database.sqlite.DatabaseObjectNotClosedException: Application did not close the cursor or database object that was opened here". (Sur Android 4.0 cette variable est à null).

Je ne sais pas si c'est lié au faite que j'ai aucun résultat, mais là je tourne un peu en rond dans mes recherches, si quelqu'un a une piste vers où m'orienter...

Merci d'avance