Как вы можете видеть в комментариях к вашему вопросу, @BarryFruitman указал, что:
SQLiteDatabase.openOrCreateDatabase () даже не принимает «режим» в качестве второго параметра
, и после этого я прокомментировал:
этот openOrCreateDatabase () является методом ContextWrapperкласс
и мы оба правы.Проблема обнаружена теперь после того, как вы разместили ссылку на учебник, по которому вы переходите.Действительно, в этом уроке предлагается этот метод:
SQLiteDatabase myDatabase = openOrCreateDatabase("myDatabase",MODE_PRIVATE,null);
, и он принадлежит классу ContextWrapper
,, но в том же учебном пособии упомянутые подписи openOrCreateDatabase()
:
openOrCreateDatabase(String path, SQLiteDatabase.CursorFactory factory)
и
openOrCreateDatabase(File file, SQLiteDatabase.CursorFactory factory)
, которые оба являются членами SQLiteDatabase
класса.Я считаю, что это ошибка учебника.Поэтому перейдите к следующему:
SQLiteDatabase gardenDatabase = SQLiteDatabase.openOrCreateDatabase(databaseNameWithPath, null);
, который использует метод из класса SQLiteDatabase
. Редактировать Конечно, для переменной databaseNameWithPath
необходимо указать полный путь и имя базы данных, например:
String databaseNameWithPath = "/data/data/" + <yourpackagename> + "/databases/" + "myDatabase";
, и создать каталог, если он еще не существует.