私の活動では、4つのフラグメントがあります。それらの1つは、データベースに接続してそのデータを取得する必要があります。ただし、アプリケーションを実行するとエラーが発生し、logcatに次のように表示されます。
07-19 02:09:01.011: E/AndroidRuntime(229): Uncaught handler: thread main exiting due to uncaught exception
07-19 02:09:01.031: E/AndroidRuntime(229): java.lang.ExceptionInInitializerError
07-19 02:09:01.031: E/AndroidRuntime(229): at com.astro.database.DatabaseHandler.<init>(DatabaseHandler.java:26)
07-19 02:09:01.031: E/AndroidRuntime(229): at com.astro.fragments.TopRecipesFragment.onActivityCreated(TopRecipesFragment.java:96)
07-19 02:09:01.031: E/AndroidRuntime(229): at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:892)
07-19 02:09:01.031: E/AndroidRuntime(229): at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1083)
07-19 02:09:01.031: E/AndroidRuntime(229): at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1065)
.
.
.
私のフラグメントのコードは次のようなものです。
public class TopRecipesFragment extends Fragment {
private Context context;
private DatabaseHandler dbHandler;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
super.onCreateView(inflater, container, savedInstanceState);
View view = inflater.inflate(R.layout.template_toprecipes, container, false);
context = getActivity().getApplicationContext();
Log.i(TAG, "View created.");
return view;
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
Log.i(TAG, "inside onActivityCreated()");
dbHandler = new DatabaseHandler(context);
}
.
.
.
}
次に、DatabaseHandlerクラス:
public class DatabaseHandler {
private DatabaseHelper dbHelper;
private SQLiteDatabase database;
public DatabaseHandler(Context context) {
dbHelper = new DatabaseHelper(context); // Error happens here
}
public void open() throws SQLException {
database = dbHelper.getWritableDatabase();
}
public void close() {
dbHelper.close();
}
.
.
.
}
そして最後に、DatabaseHelperクラス:
public class DatabaseHelper extends SQLiteOpenHelper {
private static final String DATABASE_NAME = "db";
private static final String COLUMN_ID = "_id";
private static final int DATABASE_VERSION = 1;
public DatabaseHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
.
.
.
}
なぜそれが起こるのか分かりません。任意の提案をいただければ幸いです。ありがとう