LogCat을 사용하여 문제의 원인을 파악했습니다. 나는에서 onCreate에서 실행하려고 SQL 문자열이안드로이드 - SQLiteOpenHelper onCreate에서 NullPointerException이 발생하는 이유는 무엇입니까?
.. 그것이이를 실행하려고
CREATE TABLE Routines(_id integer primary key autoincrement, json TEXT);
문제가 발생합니다.
이것은 아마도 NullPointerException
의 원인 일 수 있습니다. 잘못된 것을 볼 수 없다면 조금 더 많은 배경 정보를 읽으십시오.
이 데이터베이스는 아직 작성되지 않았으며, 계속 NullpointerException
을 얻었습니다. 이전 SQLite 코드와 비교해 보았고 그 문제는 피할 수없는 것으로 입증되었습니다.
그러나 onCreate 메서드를 사용해야하므로이 내용을 언급합니다. 내 주 코드에서 DatabaseOpenHelper
(SQliteOpenHelper 확장)을 새로 만들고 아래 보이는 것처럼 도우미의 open() 메서드를 호출하십시오.
public void open() throws SQLException
{
ssDatabase = databaseOpenHelper.getWritableDatabase();
}
내가 잘못 입력하지 않은 경우 데이터베이스가 생성되지 않았으므로 (이전에 설치 제거를 통해 확인 했음). onCreate SQLiteHelper는 open() 메서드가 호출 될 때 호출됩니다.
이것은 내가 open 메소드라고 부르는 코드입니다.
try
{
dbConnector = new DatabaseConnector (this);
debug = "2 ";
// This on first start will invoke the database onCreate method - throws SQLException
dbConnector.open(); /* PROBLEM LINE */
debug = "3 ";
}
catch (Exception e)
{
textView1.setText(debug + e.toString());
}
는 그리고 이것은 내 DatabaseOpenHelper과에서 onCreate 방법에 도움을
private class DatabaseOpenHelper extends SQLiteOpenHelper
{
public DatabaseOpenHelper(Context context, String name, CursorFactory factory, int version)
{
super(context, name, factory, version);
Log.i(TAG, "Constructor");
}
// On initial creation of database
@Override
public void onCreate(SQLiteDatabase db)
{
Log.i(TAG, "Before SQL command");
String sqlCreateCommand = "CREATE TABLE Routines"
+ "(_id integer primary key autoincrement, "
+ "json TEXT);";
Log.i(TAG, sqlCreateCommand);
// I believe this to be the PROBLEM LINE
ssDatabase.execSQL(sqlCreateCommand);
Log.i(TAG, "Jab done");
}
// On upgrade - currently do nothing
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)
{}
}
감사를 포함하는 코드입니다!
전체 스택 추적도 유용 할 것입니다. – span
코드를 디버깅하여 찾으셨습니까? –
흠, '문제'탭에있는 오류를 의미하는 경우이 경로에는 아무 것도 없습니다. 유일한 예외는 내가 TextView에 표시되는 것을 말하고있는 것입니다. 아마도 약간의 멍청한 짓을해야 할 것 같습니다 : P 그리고 거기에 내 LogCat에 예외가 생겨서 자기 자신의 태그에서 벗어났습니다. – mgibson