2010-11-23 6 views
1

여기 상황이 있습니다. 데이터베이스를 업그레이드하고 단일 열을 추가합니다. 업그레이드가 정상적으로 진행된 것 같습니다. 추가 된 새 열을 볼 수 있지만 문제는 이전 버전에서 새 버전으로 새 응용 프로그램을 업그레이드 할 때입니다. 강제로 닫습니다. 강제 닫기는 새 열을 액세스 할 때 발생하는 것 같습니다. 그러나 신선한 설치를하면 아무런 힘이 가해지지 않고 앱이 예상대로 작동합니다. 모든 아이디어를 주시면 감사하겠습니다Android SQLite onUpgrade = 강제 종료

@Override public void onUpgrade(SQLiteDatabase notes_db, int oldVersion, int newVersion) { if (oldVersion == 29) { 
    notes_db.execSQL("ALTER TABLE Notes ADD COLUMN Priority text"); 
    notes_db.execSQL("ALTER TABLE Todo ADD COLUMN Priority text"); 
    notes_db.execSQL("ALTER TABLE Todo_keys ADD COLUMN Priority text"); } else { 
    notes_db.execSQL("DROP TABLE IF EXISTS " + NOTES_TABLE); 
    notes_db.execSQL("DROP TABLE IF EXISTS " + TODO_TABLE); 
    notes_db.execSQL("DROP TABLE IF EXISTS " + TODO_KEYS_TABLE); 
    onCreate(notes_db); }  } 

:

는 upUpgrade에 내 같은 보인다.

내가 실패 믿는 곳입니다

...

11-23 14:37:06.210: DEBUG/AndroidRuntime(1647): Shutting down VM 
11-23 14:37:06.210: WARN/dalvikvm(1647): threadid=1: thread exiting with uncaught exception (group=0x4001d7e8) 
11-23 14:37:06.210: ERROR/AndroidRuntime(1647): FATAL EXCEPTION: main 
11-23 14:37:06.210: ERROR/AndroidRuntime(1647): java.lang.NullPointerException 
11-23 14:37:06.210: ERROR/AndroidRuntime(1647):  at com.flufflydelusions.app.extensive_notes_donate.Notes$TaskSimpleCursorAdapter.getView(Notes.java:1065) 
11-23 14:37:06.210: ERROR/AndroidRuntime(1647):  at android.widget.AbsListView.obtainView(AbsListView.java:1315) 
11-23 14:37:06.210: ERROR/AndroidRuntime(1647):  at android.widget.ListView.measureHeightOfChildren(ListView.java:1198) 
11-23 14:37:06.210: ERROR/AndroidRuntime(1647):  at android.widget.ListView.onMeasure(ListView.java:1109) 
11-23 14:37:06.210: ERROR/AndroidRuntime(1647):  at android.view.View.measure(View.java:8173) 
11-23 14:37:06.210: ERROR/AndroidRuntime(1647):  at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3132) 
11-23 14:37:06.210: ERROR/AndroidRuntime(1647):  at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1012) 
11-23 14:37:06.210: ERROR/AndroidRuntime(1647):  at android.widget.LinearLayout.measureVertical(LinearLayout.java:381) 
11-23 14:37:06.210: ERROR/AndroidRuntime(1647):  at android.widget.LinearLayout.onMeasure(LinearLayout.java:304) 
11-23 14:37:06.210: ERROR/AndroidRuntime(1647):  at android.view.View.measure(View.java:8173) 
11-23 14:37:06.210: ERROR/AndroidRuntime(1647):  at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3132) 
11-23 14:37:06.210: ERROR/AndroidRuntime(1647):  at android.widget.FrameLayout.onMeasure(FrameLayout.java:245) 
11-23 14:37:06.210: ERROR/AndroidRuntime(1647):  at android.view.View.measure(View.java:8173) 
11-23 14:37:06.210: ERROR/AndroidRuntime(1647):  at android.widget.LinearLayout.measureVertical(LinearLayout.java:526) 

라인 1065 catch 문이며 priority1 내가 추가 한 새 열 .. = c.getString (C

문자열 priority1입니다. getColumnIndex (databaseHelper.DB_COLUMN_PRIORITY));

 if (priority1.equals("Low")) { 
      try { 
       String low_pref = preferences.getString("low_priority_color", "Default"); 
       if (!low_pref.equals("Default")){ 
        priority_text.setBackgroundColor(Integer.parseInt(low_pref, 16)+0xFF000000); 
        priority_text.setVisibility(View.VISIBLE); 
       } else { 
        priority_text.setBackgroundColor(0xFFFFe640); 
        priority_text.setVisibility(View.VISIBLE); 
       }} catch (Exception e) { 
        errorText = e.getMessage(); 
        themeError(); 
       }     
      } 
+0

스택 트레이스를 보여 주실 수 있습니까? –

+0

자, 자. getView는 새로운 열에 액세스하는 곳입니다. 내가 진술서를 꺼내면 그 책이 달릴거야.하지만 분명히 나는 ​​그것을 필요로한다. – Paul

+0

오케이, Notes.java와 1065 행의 컨텍스트는 어떻습니까? –

답변

1

수정 됨. 새 열에 null 값이 있음

관련 문제