Intereting Posts
Android NDK r9b и компиляция C ++ 11 Как подключить Android-приложения к электронным таблицам Google Таблиц? Выровняйте верхнюю часть представления в нижней части другого вида в RelativeLayout Android – Сохранение / извлечение строк с использованием общих настроек Почему флаг isLockTaskPermitted является ложным «Системные службы, недоступные для операций до onCreate ()« Сообщение об ошибке? Facebook Android SDK v4.0.0 Проблема с ShareDialog NullPointerException Как читать входящее сообщение с помощью службы в фоновом режиме в android? Как «андроид: передний план» и «андроид: foregroundGravity» в FrameLayout влияют на его внешний вид? Круговой индикатор выполнения (для таймера обратного отсчета) SwipeRefreshLayout с scrollView и макета выше Adb shell setprop log.tag.SQLiteStatements VERBOSE ничего не делает? Picasso загружает миниатюры всех фотографий телефона Два основных действия в AndroidManifest.xml DrawerLayout или TabLayout имеет значение null после возобновления активности из фона?

SQLite: не удается привязать аргумент к индексу 1, потому что индекс выходит за пределы диапазона. Оператор имеет 0 параметров

Я получаю следующую ошибку, и я понятия не имею, почему она происходит. Мне было интересно, сможет ли кто-нибудь еще пролить свет на этот вопрос.

12-25 22:52:50.252: E/AndroidRuntime(813): Caused by: java.lang.IllegalArgumentException: Cannot bind argument at index 1 because the index is out of range. The statement has 0 parameters. 12-25 22:52:50.252: E/AndroidRuntime(813): at android.database.sqlite.SQLiteProgram.bind(SQLiteProgram.java:212) 12-25 22:52:50.252: E/AndroidRuntime(813): at android.database.sqlite.SQLiteProgram.bindString(SQLiteProgram.java:166) 12-25 22:52:50.252: E/AndroidRuntime(813): at android.database.sqlite.SQLiteProgram.bindAllArgsAsStrings(SQLiteProgram.java:200) 12-25 22:52:50.252: E/AndroidRuntime(813): at android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:47) 12-25 22:52:50.252: E/AndroidRuntime(813): at android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1314) 12-25 22:52:50.252: E/AndroidRuntime(813): at android.database.sqlite.SQLiteDatabase.queryWithFactory(SQLiteDatabase.java:1161) 12-25 22:52:50.252: E/AndroidRuntime(813): at android.database.sqlite.SQLiteDatabase.query(SQLiteDatabase.java:1032) 12-25 22:52:50.252: E/AndroidRuntime(813): at android.database.sqlite.SQLiteDatabase.query(SQLiteDatabase.java:1200) 

Код находится здесь:

 public Player getPlayer(String name) { SQLiteDatabase db = this.getReadableDatabase(); String[] projection = { PlayerEntry.COLUMN_NAME_PLAYER_NAME, PlayerEntry.COLUMN_NAME_PLAYED_GAMES, }; String selection = PlayerEntry.COLUMN_NAME_PLAYER_NAME ; String[] selectionArgs = new String[1]; selectionArgs[0] = name; Cursor cursor = db.query( PlayerEntry.TABLE_NAME, // The table to query projection, // The columns to return selection, // The columns for the WHERE clause selectionArgs, // The values for the WHERE clause null, // don't group the rows null, // don't filter by row groups null // The sort order ); if (cursor != null) cursor.moveToFirst(); 

selection должен быть выражением, а selectionArgs должен иметь столько элементов, сколько есть ? Литеральные заполнители в selection .

Ваш selection не является выражением, а его нет ? Но у вас есть один элемент в selectionArgs .

Вы, вероятно, хотите что-то вроде:

 String selection = PlayerEntry.COLUMN_NAME_PLAYER_NAME + "=?"; 

Чтобы сделать это выражением, которое соответствует столбцу имени игрока, снова в литере, который вы связываете в selectionArgs[0] .