Pas de table de ce type: (code 1) lors de la compilation: SÉLECTIONNEZ * à PARTIR de l'événement

Tout d'abord, merci de ne PAS marquer cette question des doublons parce que j'ai cherché à travers CHAQUE question qui a été posée à propos de cette erreur sur stackoverflow, mais toujours rien ne m'aide. J'ai essayé de l'augmentation de la version de base de données, la désinstallation et la réinstallation de l'application, en essayant de différents émulateurs et même essayé sur un téléphone.

C'est mon logcat:

04-26 13:43:43.970: E/SQLiteLog(2331): (1) no such table: event
04-26 13:43:43.987: D/AndroidRuntime(2331): Shutting down VM
04-26 13:43:44.007: E/AndroidRuntime(2331): FATAL EXCEPTION: main
04-26 13:43:44.007: E/AndroidRuntime(2331): Process: com.example.shareity, PID: 2331
04-26 13:43:44.007: E/AndroidRuntime(2331): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.shareity/com.example.shareity.NewEvent}: android.database.sqlite.SQLiteException: no such table: event (code 1): , while compiling: SELECT  * FROM event
04-26 13:43:44.007: E/AndroidRuntime(2331):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2298)
04-26 13:43:44.007: E/AndroidRuntime(2331):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2360)
04-26 13:43:44.007: E/AndroidRuntime(2331):     at android.app.ActivityThread.access$800(ActivityThread.java:144)
04-26 13:43:44.007: E/AndroidRuntime(2331):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1278)
04-26 13:43:44.007: E/AndroidRuntime(2331):     at android.os.Handler.dispatchMessage(Handler.java:102)
04-26 13:43:44.007: E/AndroidRuntime(2331):     at android.os.Looper.loop(Looper.java:135)
04-26 13:43:44.007: E/AndroidRuntime(2331):     at android.app.ActivityThread.main(ActivityThread.java:5221)
04-26 13:43:44.007: E/AndroidRuntime(2331):     at java.lang.reflect.Method.invoke(Native Method)
04-26 13:43:44.007: E/AndroidRuntime(2331):     at java.lang.reflect.Method.invoke(Method.java:372)
04-26 13:43:44.007: E/AndroidRuntime(2331):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
04-26 13:43:44.007: E/AndroidRuntime(2331):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
04-26 13:43:44.007: E/AndroidRuntime(2331): Caused by: android.database.sqlite.SQLiteException: no such table: event (code 1): , while compiling: SELECT  * FROM event
04-26 13:43:44.007: E/AndroidRuntime(2331):     at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method)
04-26 13:43:44.007: E/AndroidRuntime(2331):     at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:889)
04-26 13:43:44.007: E/AndroidRuntime(2331):     at android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:500)
04-26 13:43:44.007: E/AndroidRuntime(2331):     at android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:588)
04-26 13:43:44.007: E/AndroidRuntime(2331):     at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:58)
04-26 13:43:44.007: E/AndroidRuntime(2331):     at android.database.sqlite.SQLiteQuery.<init>(SQLiteQuery.java:37)
04-26 13:43:44.007: E/AndroidRuntime(2331):     at android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:44)
04-26 13:43:44.007: E/AndroidRuntime(2331):     at android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1316)
04-26 13:43:44.007: E/AndroidRuntime(2331):     at android.database.sqlite.SQLiteDatabase.rawQuery(SQLiteDatabase.java:1255)
04-26 13:43:44.007: E/AndroidRuntime(2331):     at com.example.shareity.library.DBHandlerEvent.getEventDetails(DBHandlerEvent.java:97)
04-26 13:43:44.007: E/AndroidRuntime(2331):     at com.example.shareity.NewEvent.onCreate(NewEvent.java:100)
04-26 13:43:44.007: E/AndroidRuntime(2331):     at android.app.Activity.performCreate(Activity.java:5933)
04-26 13:43:44.007: E/AndroidRuntime(2331):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1105)
04-26 13:43:44.007: E/AndroidRuntime(2331):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2251)
04-26 13:43:44.007: E/AndroidRuntime(2331):     ... 10 more
04-26 13:43:47.066: I/Process(2331): Sending signal. PID: 2331 SIG: 9

L'erreur se produit lorsque je clique sur un élément de liste dans ma ListView.

public class ListNew extends Activity {
ListView list;
TextView eid;
TextView ename; 
TextView edesc;
//Button Btngetdata;
ArrayList<HashMap<String, String>> oslist = new ArrayList<HashMap<String, String>>();
//URL to get JSON Array
private static String url = "http://<mylink>/test.php/";
//JSON Node Names 
private static final String TAG_OS = "events";
private static final String TAG_EID = "eid";
private static final String TAG_ENAME = "ename";
private static final String TAG_ETYPE = "etype";
private static final String TAG_EDESC = "edesc";
private static final String TAG_ESDATE = "esdate";
private static final String TAG_EEDATE = "eedate";
private static final String TAG_ESTIME = "estime";
private static final String TAG_EETIME = "eetime";
private static final String TAG_LOCATION = "location";
private static final String TAG_CREATED_AT = "created_at";
private static final String TAG_EDITED_AT = "edited_at";
private static final String TAG_CREATEDBY = "createdby";
private static final String TAG_APPROVED = "approved";
JSONArray events = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.listnew);
oslist = new ArrayList<HashMap<String, String>>();
new JSONParse().execute();
/*
Btngetdata = (Button)findViewById(R.id.getdata);
Btngetdata.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
new JSONParse().execute();
}
});
*/
}
private class JSONParse extends AsyncTask<String, String, JSONObject> {
private ProgressDialog pDialog;
@Override
protected void onPreExecute() {
super.onPreExecute();
eid = (TextView)findViewById(R.id.vers);
ename = (TextView)findViewById(R.id.name);
edesc = (TextView)findViewById(R.id.api);
pDialog = new ProgressDialog(ListNew.this);
pDialog.setMessage("Getting Data ...");
pDialog.setIndeterminate(false);
pDialog.setCancelable(true);
pDialog.show();
}
@Override
protected JSONObject doInBackground(String... args) {
JSONParser jParser = new JSONParser();
//Getting JSON from URL
JSONObject json = jParser.getJSONFromUrl2(url);
return json;
}
@Override
protected void onPostExecute(JSONObject json) {
pDialog.dismiss();
try {
//Getting JSON Array from URL
events = json.getJSONArray(TAG_OS);
for(int i = 0; i < events.length(); i++){
JSONObject c = events.getJSONObject(i);
//Storing  JSON item in a Variable
String eid = c.getString(TAG_EID);
String ename = c.getString(TAG_ENAME);
String etype = c.getString(TAG_ETYPE);
String edesc = c.getString(TAG_EDESC);
String esdate = c.getString(TAG_ESDATE);
String eedate = c.getString(TAG_EEDATE);
String estime = c.getString(TAG_ESTIME);
String eetime = c.getString(TAG_EETIME);
String location = c.getString(TAG_LOCATION);
String created_at = c.getString(TAG_CREATED_AT);
String edited_at = c.getString(TAG_EDITED_AT);
String createdby = c.getString(TAG_CREATEDBY);
String approved = c.getString(TAG_APPROVED);
//Adding value HashMap key => value
HashMap<String, String> map = new HashMap<String, String>();
map.put(TAG_EID, eid);
map.put(TAG_ENAME, ename);
map.put(TAG_ETYPE, etype);
map.put(TAG_EDESC, edesc);
map.put(TAG_ESDATE, esdate);
map.put(TAG_EEDATE, eedate);
map.put(TAG_ESTIME, estime);
map.put(TAG_EETIME, eetime);
map.put(TAG_LOCATION, location);
map.put(TAG_CREATED_AT, created_at);
map.put(TAG_EDITED_AT, edited_at);
map.put(TAG_CREATEDBY, createdby);
map.put(TAG_APPROVED, approved);
oslist.add(map);
list=(ListView)findViewById(R.id.list);
//Log.d("TAG_is d first one", TAG_APPROVED + "," + approved);
ListAdapter adapter = new SimpleAdapter(ListNew.this, oslist,
R.layout.list_v,
new String[] { TAG_ENAME,TAG_CREATEDBY, TAG_CREATED_AT }, new int[] {
R.id.vers,R.id.name, R.id.api});
list.setAdapter(adapter);
//Log.d("after setting adapter", TAG_EID + "," + TAG_ENAME);
list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
//Toast.makeText(MainActivity.this, "You Clicked at "+oslist.get(+position).get("ename"), Toast.LENGTH_SHORT).show();
Intent i = new Intent(ListNew.this, NewEvent.class);
i.putExtra("eid", oslist.get(+position).get("eid") );
//i.putExtra("tel", tels.get(position) );
i.putExtra("ename", oslist.get(+position).get("ename") );
i.putExtra("etype", oslist.get(+position).get("etype") );
i.putExtra("edesc", oslist.get(+position).get("edesc") );
i.putExtra("esdate", oslist.get(+position).get("esdate") );
i.putExtra("eedate", oslist.get(+position).get("eedate") );
i.putExtra("estime", oslist.get(+position).get("estime") );
i.putExtra("eetime", oslist.get(+position).get("eetime") );
i.putExtra("location", oslist.get(+position).get("location") );
i.putExtra("created_at", oslist.get(+position).get("created_at") );
i.putExtra("edited_at", oslist.get(+position).get("edited_at") );
i.putExtra("createdby", oslist.get(+position).get("createdby") );
i.putExtra("approved", oslist.get(+position).get("approved") );
startActivity(i);
}
});
}//end if
} catch (JSONException e) {
e.printStackTrace();
}
}
}

}

C'est mon prochain intention de laquelle les données doivent aller à quand un élément de la liste est sélectionné.

public class NewEvent extends Activity {
Button bk, newact;
String ename;
String eid;
@Override
protected void onCreate(Bundle savedInstanceState) {
//TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.event);
//DBHandlerEvent db = new DBHandlerEvent(getApplicationContext());
//HashMap<String, String> event = new HashMap<String, String>();
//event = db.getEventDetails();
bk = (Button) findViewById(R.id.btnbackne);
newact = (Button) findViewById(R.id.btnnewact);
final TextView en = (TextView) findViewById(R.id.tvename);
final TextView des = (TextView) findViewById(R.id.tvdescription);
final TextView sd = (TextView) findViewById(R.id.tvsdate);
final TextView ed = (TextView) findViewById(R.id.tvedate);
final TextView location = (TextView) findViewById(R.id.tvgoal);
final TextView reg = (TextView) findViewById(R.id.tveventregdate);
Intent intent= getIntent();
eid = intent.getStringExtra("eid");
ename = intent.getStringExtra("ename");
String edesc = intent.getStringExtra("edesc");
String esdate = intent.getStringExtra("esdate");
String eedate = intent.getStringExtra("eedate");
String estime = intent.getStringExtra("estime");
String eetime = intent.getStringExtra("eetime");
String loc = intent.getStringExtra("location");
String createdby= intent.getStringExtra("createdby");
//en.setText(eid);
en.setText(ename);
des.setText(edesc);
sd.setText(esdate);
ed.setText(eedate);
//en.setText(estime);
//en.setText(eetime);
location.setText(loc);
reg.setText(createdby);
bk.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//TODO Auto-generated method stub
Intent myIntent = new Intent(v.getContext(), ListNew.class);
startActivityForResult(myIntent, 0);
finish();
}
});
DatabaseHandler db = new DatabaseHandler(getApplicationContext());
HashMap<String,String> user = new HashMap<String, String>();
user = db.getUserDetails();
DBHandlerEvent dbe = new DBHandlerEvent(getApplicationContext());
HashMap<String,String> event = new HashMap<String, String>();
event = dbe.getEventDetails();
String logd = user.get("fname");
String ev = event.get("createdBy");
if (logd.equals(ev)){
newact.setVisibility(View.VISIBLE);
}else{
newact.setVisibility(View.GONE);
}
newact.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//TODO Auto-generated method stub
/*
Intent myIntent2 = new Intent(v.getContext(), CreateActivity.class);
startActivityForResult(myIntent2, 0);
*/
Intent send = new Intent(NewEvent.this, Donate.class);
send.putExtra("eid", eid);
send.putExtra("ename", ename.toString());
startActivity(send);
finish();
}
});
final TextView createdBy = (TextView) findViewById(R.id.tvCreatedBy);
//createdBy.setText("Event created by:  "+user.get("fname"));
}
}

Edit: ajout de la DB de la classe helper

public void onCreate(SQLiteDatabase db) {
String CREATE_EVENT_TABLE = "CREATE TABLE " + TABLE_EVENT + "(" 
+ KEY_ID + "INTEGER PRIMARY KEY,"
+ KEY_ENAME + " TEXT,"
+ KEY_ETYPE + " TEXT,"
+ KEY_EDES + " TEXT,"
+ KEY_ESDATE + " TEXT,"
+ KEY_EEDATE + " TEXT,"
+ KEY_ESTIME + " TEXT,"
+ KEY_EETIME + " TEXT,"
+ KEY_LOCATION + " TEXT,"
+ KEY_CREATED_AT + " TEXT,"
+ KEY_EDITED_AT + " TEXT,"
+ KEY_CREATED_BY + " TEXT " + ")";
db.execSQL(CREATE_EVENT_TABLE);
db.execSQL("PRAGMA foreign_keys=ON;");
}
//Upgrading database
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
//Drop older table if existed
db.execSQL("DROP TABLE IF EXISTS " + TABLE_EVENT);
//Create tables again
onCreate(db);
}
  • Montrez votre CREATE TABLE code.
  • J'ai ajouté le code qui contient l'ensemble du code de la liste de classe. Dans cette catégorie, je n'ai pas de Créer la Table de code coz je suis le seul à la récupération des données. J'ai une catégorie distincte pour les fonctions de Base de données. Vous voulez me comprennent aussi?
  • C'est ce que j'ai demandé. Où vous avez la CREATE TABLE. La plupart d'entre nous utilisent une catégorie distincte pour que.
  • ok, j'ai ajouté le code
InformationsquelleAutor Yohan Blake | 2015-04-26