2014-04-15 2 views
0

저는 데이터베이스를 만드는 중 새로운 개발자이자 문제가 있습니다. 특정 코드 줄이없는 경우 앱이 제대로 실행됩니다. 내가 뭘 잘못하고 있니?SQLite 데이터베이스를 만드는 동안 응용 프로그램이 손상됩니다.

그리고 또 다른 질문 : 조각에서 데이터베이스를 어떻게 acsses 할 수 있습니까 ???

감사합니다.

import android.app.SearchManager; 
import android.content.Intent; 
import android.database.sqlite.SQLiteDatabase; 
import android.os.Bundle; 
import android.support.v7.app.ActionBarActivity; 
import android.view.Menu; 
import android.view.MenuItem; 


public class MainActivity extends ActionBarActivity { 


    SQLiteDatabase db=openOrCreateDatabase("MyDB", MODE_PRIVATE,null); 
    // it crashes when I add this line 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    Intent intent = getIntent(); 

    if (savedInstanceState == null) { 
     getSupportFragmentManager().beginTransaction() 
       .add(R.id.container, new PlaceholderFragment()).commit(); 
    } 
} 

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 

    // Inflate the menu; this adds items to the action bar if it is present. 
    getMenuInflater().inflate(R.menu.main, menu); 
    return true; 
} 

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    // Handle action bar item clicks here. The action bar will 
    // automatically handle clicks on the Home/Up button, so long 
    // as you specify a parent activity in AndroidManifest.xml. 
    int id = item.getItemId(); 
    if (id == R.id.action_settings) { 
     return true; 
    } 
    return super.onOptionsItemSelected(item); 
} 

} 

로그 캣 :

04-15 18:58:42.034: E/Trace(2497): error opening trace file: No such file or directory (2) 
04-15 18:58:42.178: D/AndroidRuntime(2497): Shutting down VM 
04-15 18:58:42.178: W/dalvikvm(2497): threadid=1: thread exiting with uncaught exception (group=0xa630a288) 
04-15 18:58:42.194: E/AndroidRuntime(2497): FATAL EXCEPTION: main 
04-15 18:58:42.194: E/AndroidRuntime(2497): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.craftyonhand.www/com.craftyonhand.www.MainActivity}: java.lang.NullPointerException 
04-15 18:58:42.194: E/AndroidRuntime(2497):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1983) 
04-15 18:58:42.194: E/AndroidRuntime(2497):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084) 
04-15 18:58:42.194: E/AndroidRuntime(2497):  at android.app.ActivityThread.access$600(ActivityThread.java:130) 
04-15 18:58:42.194: E/AndroidRuntime(2497):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1195) 
04-15 18:58:42.194: E/AndroidRuntime(2497):  at android.os.Handler.dispatchMessage(Handler.java:99) 
04-15 18:58:42.194: E/AndroidRuntime(2497):  at android.os.Looper.loop(Looper.java:137) 
04-15 18:58:42.194: E/AndroidRuntime(2497):  at android.app.ActivityThread.main(ActivityThread.java:4745) 
04-15 18:58:42.194: E/AndroidRuntime(2497):  at java.lang.reflect.Method.invokeNative(Native Method) 
04-15 18:58:42.194: E/AndroidRuntime(2497):  at java.lang.reflect.Method.invoke(Method.java:511) 
04-15 18:58:42.194: E/AndroidRuntime(2497):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786) 
04-15 18:58:42.194: E/AndroidRuntime(2497):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) 
04-15 18:58:42.194: E/AndroidRuntime(2497):  at dalvik.system.NativeStart.main(Native Method) 
04-15 18:58:42.194: E/AndroidRuntime(2497): Caused by: java.lang.NullPointerException 
04-15 18:58:42.194: E/AndroidRuntime(2497):  at android.content.ContextWrapper.openOrCreateDatabase(ContextWrapper.java:215) 
04-15 18:58:42.194: E/AndroidRuntime(2497):  at com.craftyonhand.www.MainActivity.<init>(MainActivity.java:14) 
04-15 18:58:42.194: E/AndroidRuntime(2497):  at java.lang.Class.newInstanceImpl(Native Method) 
04-15 18:58:42.194: E/AndroidRuntime(2497):  at java.lang.Class.newInstance(Class.java:1319) 
04-15 18:58:42.194: E/AndroidRuntime(2497):  at android.app.Instrumentation.newActivity(Instrumentation.java:1053) 
04-15 18:58:42.194: E/AndroidRuntime(2497):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1974) 
04-15 18:58:42.194: E/AndroidRuntime(2497):  ... 11 more 
04-15 18:59:13.598: I/Process(2497): Sending signal. PID: 2497 SIG: 9 
+1

데이터베이스는 어디에 있습니까? 당신이 만들고있는 단편에? 오류를 게시하십시오. – Rarw

+1

귀하의 logcat을 게시하십시오. – interlude

+0

04-15 13:44:11.294 : E/Trace (971) : 추적 파일을 열 때 오류가 발생합니다. 해당 파일이나 디렉토리가 없습니다. (2) 오류가 발생했습니다. 로그인하려고합니다. – evyamiz

답변

1

당신은 너무 일찍 초기화된다. 활동이 유효한 컨텍스트 인 곳에서 onCreate()으로 초기화 코드를 이동하십시오.

+0

질문을 편집했다. 그게 효과가! 조각에서 데이터베이스에 어떻게 액세스합니까? – evyamiz

+0

db를 쉽게 사용하려면 db를 직접 여는 대신 SQLiteOpenHelper를 사용하는 것이 좋습니다. – laalto

+0

Thnaks, 이것 좀 살펴 보겠습니다. 그러나 단편에서 데이타베이스를 어떻게 다루는 지 궁금합니다. 나는 활동에서 db를 선언했는데 조각에서 그것을 인식하지 못한다. – evyamiz

관련 문제