1

私のAndroidアプリにはデータベースに2つのテーブルが含まれており、1つのテーブルは動的データを保存し、別のテーブルはテキストファイルを解析してそのテーブルに約7000の辞書単語を保存する必要があります.このアクションは、アプリを初めてインストールするときに1回実行する必要があります. raw フォルダに保存されます。

ここで直面している問題は、解析してそのテーブルに保存しようとすると、logcat がデータベースにそのようなテーブルがないと言うことです。

メソッドと DBHelper のスニペット コードは次のとおりです。

DBHelper クラスのスニペット:

private static final String DICTIONARY_TABLE_CREATE =
"CREATE TABLE " + DATABASE_TABLE_NAME_DICTIONARY + "(" +
"_id INTEGER PRIMARY KEY AUTOINCREMENT,"+
"words TEXT NOT NULL);";

private static final String USER_TABLE_CREATE =
"CREATE TABLE " + DATABASE_TABLE_NAME_USERINFO + "(" +
"_id INTEGER PRIMARY KEY AUTOINCREMENT,"+
"player_name TEXT NOT NULL, " +
"player_username TEXT NOT NULL, " +
"player_pass TEXT NOT NULL, " +
"player_played VARCHAR NOT NULL, " +
"player_won VARCHAR NOT NULL, " +
"player_loss VARCHAR NOT NULL);";

public void onCreate(SQLiteDatabase db) 
{       
try
{
db.execSQL(USER_TABLE_CREATE);
db.execSQL(DICTIONARY_TABLE_CREATE);
System.out.println("In onCreate");
}
catch(Exception e)
{
e.printStackTrace();
}
}

テキストファイルを解析して値をデータベースに挿入する方法は次のとおりです。

public void CopytxtfileTodb()
{
InputStream inputStream = getResources().openRawResource(R.raw.wordslists);
BufferedReader br = new BufferedReader( new InputStreamReader(inputStream));
SQLiteDatabase db = playerDB.getWritableDatabase();

try 
{                     
String line = ""; 

while((line= br.readLine()) != "")
{                                                 
ContentValues values = new ContentValues();

values.put("words", line);

try
{   
db.insert(DBHelper.DATABASE_TABLE_NAME_DICTIONARY, null, values);                                       
}                                                                  
catch(Exception e)
{
e.printStackTrace();

}                 
}              

} 
catch(Exception e) 
{ 
System.err.println("Parse Error: " + e.getMessage());                   
}               
4

1 に答える 1

0

問題は、DbHelper が適切にインスタンス化されていないことが原因である可能性があります。dbhelper のインスタンス化中に適切なデータベース名、バージョン、およびコンテキストが渡されたかどうかを確認してください。- また、データベースが存在しないことを logcat が訴えるコードの場所を教えてください - 断片ではなくコード全体を添付してください

于 2013-01-26T16:58:11.330 に答える