Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/200.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 从数据库检索数据时显示空指针异常_Android_Database - Fatal编程技术网

Android 从数据库检索数据时显示空指针异常

Android 从数据库检索数据时显示空指针异常,android,database,Android,Database,因为,我是android世界的新手,所以,请帮助我。当我使用androidsqlite通过这些代码从数据库中检索数据时- Cursor cursor; DatabaseConnector dbConnector = new DatabaseConnector(this); private ListAdapter conAdapter; String[] from_for_text_in_list = {"name"}; int[] to_for_text_in_list = {R.id.titl

因为,我是android世界的新手,所以,请帮助我。当我使用androidsqlite通过这些代码从数据库中检索数据时-

Cursor cursor;
DatabaseConnector dbConnector = new DatabaseConnector(this);
private ListAdapter conAdapter;
String[] from_for_text_in_list = {"name"};
int[] to_for_text_in_list = {R.id.title_info_txt_v}
cursor = dbConnector.getAllContacts();
conAdapter = new SimpleCursorAdapter(Infoclass.this, R.layout.listview_layout, null, from_for_text_in_list, to_for_text_in_list);
setListAdapter(conAdapter);
现在我将getAllmethod()声明为-

“name”只是我应用程序中数据库的一个列名

当我运行我的应用程序时,它在getAllContact()方法中显示空指针异常。甚至我通过SQLite浏览器检查了我的数据库,我发现数据插入成功地进行了。但数据不能从数据库检索到列表视图。我的logCat错误如下所示-

            11-14 12:01:21.694: E/Trace(30607): error opening trace file: No such file or directory (2)

11-14 12:01:22.475: D/AndroidRuntime(30607): Shutting down VM
11-14 12:01:22.475: W/dalvikvm(30607): threadid=1: thread exiting with uncaught exception (group=0x40a13300)
11-14 12:01:22.495: E/AndroidRuntime(30607): FATAL EXCEPTION: main
11-14 12:01:22.495: E/AndroidRuntime(30607): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.kt.narendramodi/com.kt.narendramodi.ModiForIndia}: java.lang.RuntimeException: Unable to start activity ComponentInfo{com.kt.narendramodi/com.kt.narendramodi.InfoNarendraModi}: java.lang.IllegalArgumentException: Cannot bind argument at index 2 because the index is out of range.  The statement has 0 parameters.
11-14 12:01:22.495: E/AndroidRuntime(30607):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2059)
11-14 12:01:22.495: E/AndroidRuntime(30607):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084)
11-14 12:01:22.495: E/AndroidRuntime(30607):    at android.app.ActivityThread.access$600(ActivityThread.java:130)
11-14 12:01:22.495: E/AndroidRuntime(30607):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1195)
11-14 12:01:22.495: E/AndroidRuntime(30607):    at android.os.Handler.dispatchMessage(Handler.java:99)
11-14 12:01:22.495: E/AndroidRuntime(30607):    at android.os.Looper.loop(Looper.java:137)
11-14 12:01:22.495: E/AndroidRuntime(30607):    at android.app.ActivityThread.main(ActivityThread.java:4745)
11-14 12:01:22.495: E/AndroidRuntime(30607):    at java.lang.reflect.Method.invokeNative(Native Method)
11-14 12:01:22.495: E/AndroidRuntime(30607):    at java.lang.reflect.Method.invoke(Method.java:511)
11-14 12:01:22.495: E/AndroidRuntime(30607):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
11-14 12:01:22.495: E/AndroidRuntime(30607):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
11-14 12:01:22.495: E/AndroidRuntime(30607):    at dalvik.system.NativeStart.main(Native Method)
11-14 12:01:22.495: E/AndroidRuntime(30607): Caused by: java.lang.RuntimeException: Unable to start activity ComponentInfo{com.kt.narendramodi/com.kt.narendramodi.InfoNarendraModi}: java.lang.IllegalArgumentException: Cannot bind argument at index 2 because the index is out of range.  The statement has 0 parameters.
11-14 12:01:22.495: E/AndroidRuntime(30607):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2059)
11-14 12:01:22.495: E/AndroidRuntime(30607):    at android.app.ActivityThread.startActivityNow(ActivityThread.java:1900)
11-14 12:01:22.495: E/AndroidRuntime(30607):    at android.app.LocalActivityManager.moveToState(LocalActivityManager.java:135)
11-14 12:01:22.495: E/AndroidRuntime(30607):    at android.app.LocalActivityManager.startActivity(LocalActivityManager.java:347)
11-14 12:01:22.495: E/AndroidRuntime(30607):    at android.widget.TabHost$IntentContentStrategy.getContentView(TabHost.java:694)
11-14 12:01:22.495: E/AndroidRuntime(30607):    at android.widget.TabHost.setCurrentTab(TabHost.java:358)
11-14 12:01:22.495: E/AndroidRuntime(30607):    at android.widget.TabHost.addTab(TabHost.java:236)
11-14 12:01:22.495: E/AndroidRuntime(30607):    at com.kt.narendramodi.ModiForIndia.onCreate(ModiForIndia.java:41)
11-14 12:01:22.495: E/AndroidRuntime(30607):    at android.app.Activity.performCreate(Activity.java:5008)
11-14 12:01:22.495: E/AndroidRuntime(30607):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1079)
11-14 12:01:22.495: E/AndroidRuntime(30607):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2023)
11-14 12:01:22.495: E/AndroidRuntime(30607):    ... 11 more
11-14 12:01:22.495: E/AndroidRuntime(30607): Caused by: java.lang.IllegalArgumentException: Cannot bind argument at index 2 because the index is out of range.  The statement has 0 parameters.
11-14 12:01:22.495: E/AndroidRuntime(30607):    at android.database.sqlite.SQLiteProgram.bind(SQLiteProgram.java:212)
11-14 12:01:22.495: E/AndroidRuntime(30607):    at android.database.sqlite.SQLiteProgram.bindString(SQLiteProgram.java:166)
11-14 12:01:22.495: E/AndroidRuntime(30607):    at android.database.sqlite.SQLiteProgram.bindAllArgsAsStrings(SQLiteProgram.java:200)
11-14 12:01:22.495: E/AndroidRuntime(30607):    at android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:47)
11-14 12:01:22.495: E/AndroidRuntime(30607):    at android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1314)
11-14 12:01:22.495: E/AndroidRuntime(30607):    at android.database.sqlite.SQLiteDatabase.rawQuery(SQLiteDatabase.java:1253)
11-14 12:01:22.495: E/AndroidRuntime(30607):    at com.kt.nanrendramodi.databasehelper.DatabaseConnector.getAllContacts(DatabaseConnector.java:60)
11-14 12:01:22.495: E/AndroidRuntime(30607):    at com.kt.narendramodi.InfoNarendraModi.onCreate(InfoNarendraModi.java:94)
11-14 12:01:22.495: E/AndroidRuntime(30607):    at android.app.Activity.performCreate(Activity.java:5008)
11-14 12:01:22.495: E/AndroidRuntime(30607):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1079)
11-14 12:01:22.495: E/AndroidRuntime(30607):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2023)
11-14 12:01:22.495: E/AndroidRuntime(30607):    ... 21 more

您必须检查两件事:

  • 您的数据库应初始化为可读写数据库

    database=yourDbHelper.getReadableDatabase()

  • 如果已完全填充SQL查询,则不需要这些选择参数

    database.rawQuery(“从tcc\u info\u表中选择_id、名称”,null)


  • 你初始化了你的数据库变量吗?我没有得到你。。。请详细说明。您需要将数据库对象初始化为database=dbHelper。getReadableDatabase()数据库是SQLiteDataBase类的对象。确定。因此,您需要像初始化其他对象一样初始化它。例如,学生stu=新学生();亲爱的varevarao“数据库”是SqliteDataBase类的对象。我不明白这意味着您不应该如上所述初始化它
    getReadableDatabase()
    返回SQLiteDatabase的实例。请参阅下面的链接,尤其是创建和/或打开数据库一行。
                11-14 12:01:21.694: E/Trace(30607): error opening trace file: No such file or directory (2)
    
    11-14 12:01:22.475: D/AndroidRuntime(30607): Shutting down VM
    11-14 12:01:22.475: W/dalvikvm(30607): threadid=1: thread exiting with uncaught exception (group=0x40a13300)
    11-14 12:01:22.495: E/AndroidRuntime(30607): FATAL EXCEPTION: main
    11-14 12:01:22.495: E/AndroidRuntime(30607): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.kt.narendramodi/com.kt.narendramodi.ModiForIndia}: java.lang.RuntimeException: Unable to start activity ComponentInfo{com.kt.narendramodi/com.kt.narendramodi.InfoNarendraModi}: java.lang.IllegalArgumentException: Cannot bind argument at index 2 because the index is out of range.  The statement has 0 parameters.
    11-14 12:01:22.495: E/AndroidRuntime(30607):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2059)
    11-14 12:01:22.495: E/AndroidRuntime(30607):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084)
    11-14 12:01:22.495: E/AndroidRuntime(30607):    at android.app.ActivityThread.access$600(ActivityThread.java:130)
    11-14 12:01:22.495: E/AndroidRuntime(30607):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1195)
    11-14 12:01:22.495: E/AndroidRuntime(30607):    at android.os.Handler.dispatchMessage(Handler.java:99)
    11-14 12:01:22.495: E/AndroidRuntime(30607):    at android.os.Looper.loop(Looper.java:137)
    11-14 12:01:22.495: E/AndroidRuntime(30607):    at android.app.ActivityThread.main(ActivityThread.java:4745)
    11-14 12:01:22.495: E/AndroidRuntime(30607):    at java.lang.reflect.Method.invokeNative(Native Method)
    11-14 12:01:22.495: E/AndroidRuntime(30607):    at java.lang.reflect.Method.invoke(Method.java:511)
    11-14 12:01:22.495: E/AndroidRuntime(30607):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
    11-14 12:01:22.495: E/AndroidRuntime(30607):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
    11-14 12:01:22.495: E/AndroidRuntime(30607):    at dalvik.system.NativeStart.main(Native Method)
    11-14 12:01:22.495: E/AndroidRuntime(30607): Caused by: java.lang.RuntimeException: Unable to start activity ComponentInfo{com.kt.narendramodi/com.kt.narendramodi.InfoNarendraModi}: java.lang.IllegalArgumentException: Cannot bind argument at index 2 because the index is out of range.  The statement has 0 parameters.
    11-14 12:01:22.495: E/AndroidRuntime(30607):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2059)
    11-14 12:01:22.495: E/AndroidRuntime(30607):    at android.app.ActivityThread.startActivityNow(ActivityThread.java:1900)
    11-14 12:01:22.495: E/AndroidRuntime(30607):    at android.app.LocalActivityManager.moveToState(LocalActivityManager.java:135)
    11-14 12:01:22.495: E/AndroidRuntime(30607):    at android.app.LocalActivityManager.startActivity(LocalActivityManager.java:347)
    11-14 12:01:22.495: E/AndroidRuntime(30607):    at android.widget.TabHost$IntentContentStrategy.getContentView(TabHost.java:694)
    11-14 12:01:22.495: E/AndroidRuntime(30607):    at android.widget.TabHost.setCurrentTab(TabHost.java:358)
    11-14 12:01:22.495: E/AndroidRuntime(30607):    at android.widget.TabHost.addTab(TabHost.java:236)
    11-14 12:01:22.495: E/AndroidRuntime(30607):    at com.kt.narendramodi.ModiForIndia.onCreate(ModiForIndia.java:41)
    11-14 12:01:22.495: E/AndroidRuntime(30607):    at android.app.Activity.performCreate(Activity.java:5008)
    11-14 12:01:22.495: E/AndroidRuntime(30607):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1079)
    11-14 12:01:22.495: E/AndroidRuntime(30607):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2023)
    11-14 12:01:22.495: E/AndroidRuntime(30607):    ... 11 more
    11-14 12:01:22.495: E/AndroidRuntime(30607): Caused by: java.lang.IllegalArgumentException: Cannot bind argument at index 2 because the index is out of range.  The statement has 0 parameters.
    11-14 12:01:22.495: E/AndroidRuntime(30607):    at android.database.sqlite.SQLiteProgram.bind(SQLiteProgram.java:212)
    11-14 12:01:22.495: E/AndroidRuntime(30607):    at android.database.sqlite.SQLiteProgram.bindString(SQLiteProgram.java:166)
    11-14 12:01:22.495: E/AndroidRuntime(30607):    at android.database.sqlite.SQLiteProgram.bindAllArgsAsStrings(SQLiteProgram.java:200)
    11-14 12:01:22.495: E/AndroidRuntime(30607):    at android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:47)
    11-14 12:01:22.495: E/AndroidRuntime(30607):    at android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1314)
    11-14 12:01:22.495: E/AndroidRuntime(30607):    at android.database.sqlite.SQLiteDatabase.rawQuery(SQLiteDatabase.java:1253)
    11-14 12:01:22.495: E/AndroidRuntime(30607):    at com.kt.nanrendramodi.databasehelper.DatabaseConnector.getAllContacts(DatabaseConnector.java:60)
    11-14 12:01:22.495: E/AndroidRuntime(30607):    at com.kt.narendramodi.InfoNarendraModi.onCreate(InfoNarendraModi.java:94)
    11-14 12:01:22.495: E/AndroidRuntime(30607):    at android.app.Activity.performCreate(Activity.java:5008)
    11-14 12:01:22.495: E/AndroidRuntime(30607):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1079)
    11-14 12:01:22.495: E/AndroidRuntime(30607):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2023)
    11-14 12:01:22.495: E/AndroidRuntime(30607):    ... 21 more