我收到以下错误,我不知道它为什么会发生.我想知道是否还有其他人可以对这个问题有所了解.
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)
Run Code Online (Sandbox Code Playgroud)
代码在这里:
public Player getPlayer(String name) {
SQLiteDatabase db = this.getReadableDatabase();
String[] projection = {
PlayerEntry.COLUMN_NAME_PLAYER_NAME, …Run Code Online (Sandbox Code Playgroud) 我目前正在研究一些似乎有一些竞争条件的并发代码.我正在尝试使用我当前的IDE Eclipse调试代码,但我并不完全满意.特别是,对于变量存在竞争条件,使得在访问它的方法之一上没有断点("获取它"),变量设置方法不完成,并且变量被设置为空.但是,如果我在访问方法上设置了一个断点,并按住F8 - 默认的跨越按钮 - 变量几乎总是设置为正确的(非空)值.
这让我想问以下问题:Eclipse是否有可能不会在所有线程上的断点上暂停执行,以至于我可以看到潜在的竞争条件,因为它看起来没有断点,或者是其他东西(可能)发生了什么?
如果Eclipse没有快速暂停执行,那么是否有其他适用于Java的IDE /调试器可以做得更好?请注意,我不是在寻找像Java Pathfinder这样的正式验证工具 - 我不想检查竞争条件是否存在,我想在我的调试器中看到它们展开(如果只是因为它可能有趣的话).