아래는 제 코드의 일부이구요 문제는 갤럭시 s4 에서는 문제없이 실행되는 코드인데, 갤럭시 s7 에서는
db 에서 테이블을 못찾는다는 거에요;; no such table을 띄워요
private static final int DATABASE_VERSION = 1;
private static final String DATABASE_NAME = "chatRoom.db";
private static final String LOGIN = "login";
private static final String CHAT = "chat";
private static final String ROOM = "room";
private static final String DATA = "data";
private static final String CHAT_LIST = "chat_list";
private static final String CHAT_ROOM = "chat_room";
private static final String CHAT_NAME = "chat_name";
private static final String CHAT_TEXT = "chat_text";
private static final String CHAT_KEY = "chat_key";
private static final String CHAT_TOKEN = "chat_token";
private static final String CHAT_PROFILE_IMAGE = "chat_profile_image";
private static final String CHAT_BADGE = "chat_badge";
private static final String MY_NAME = "my_name";
private static final String MY_TOKEN = "my_token";
private static final String MY_PROFILE_IMAGE = "my_profile_image";
public ArrayList<String> arrayList;
public ArrayList<Integer> deleteList;
private String room_name;
private String chat_text;
--------------------------------------------------------------------------
public DBHandler(Context context, String name, SQLiteDatabase.CursorFactory factory, int version)
{
super(context, DATABASE_NAME, factory, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db)
{
String DATA_TABLE =
"CREATE TABLE " +
DATA + "(" +
CHAT_LIST + " INTEGER PRIMARY KEY, " +
MY_NAME + " TEXT, " + // my_name
MY_TOKEN + " TEXT, " + // my_token
MY_PROFILE_IMAGE + " TEXT" + ")"; // user profile_image name
db.execSQL(DATA_TABLE);
// CHAT DATA
String CREATE_CHAT_TABLE =
"CREATE TABLE " +
CHAT + "(" +
CHAT_LIST + " INTEGER PRIMARY KEY, " +
CHAT_ROOM + " TEXT," +
CHAT_NAME + " TEXT," +
CHAT_TEXT + " TEXT" + ")";
db.execSQL(CREATE_CHAT_TABLE);
// ROOM DATA
String CHAT_ROOM_TABLE =
"CREATE TABLE " +
ROOM + "(" +
CHAT_LIST + " INTEGER PRIMARY KEY, " +
CHAT_NAME + " TEXT, " + // room_name(=user_name)
CHAT_TEXT + " TEXT, " +
CHAT_KEY + " TEXT, " +
CHAT_TOKEN + " TEXT, " + // user_token
CHAT_PROFILE_IMAGE + " TEXT, " +
CHAT_BADGE + " TEXT" + ")"; // profile image
db.execSQL(CHAT_ROOM_TABLE);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)
{
db.execSQL("DROP TABLE IF EXISTS " + DATA);
db.execSQL("DROP TABLE IF EXISTS " + CHAT);
db.execSQL("DROP TABLE IF EXISTS " + ROOM);
onCreate(db);
}
public void setMyData(String name, String token)
{
ContentValues contentValues = new ContentValues();
contentValues.put(MY_NAME, name); // user name
contentValues.put(MY_TOKEN, token);
SQLiteDatabase sqLiteDatabase =this.getWritableDatabase();
sqLiteDatabase.insert(DATA, null, contentValues);
sqLiteDatabase.close();
}
public String getMyData(String type)
{
String query = "SELECT * FROM " + DATA;
String data = "";
SQLiteDatabase sqLiteDatabase = this.getWritableDatabase();
Cursor cursor = sqLiteDatabase.rawQuery(query, null); <-- 제가 실행시킨 코드에서 여기서 에러가 발 생합니다 no such table 이라고요
if(cursor.moveToFirst()) {
switch(type)
{
case "NAME" : data = cursor.getString(cursor.getColumnIndex("my_name")); break;
case "TOKEN" : data = cursor.getString(cursor.getColumnIndex("my_token")); break;
default: Log.i("DBHandler-getMyData", "DEFAULT");
}
}
cursor.close();
sqLiteDatabase.close();
return data;
}
둘 다 안되면 몰라도 하나만 안되니까 더 모르겠네요; 한번 봐주시고 답변 부탁드립니다!