Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.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 CursorLoader和acquireUnstableProvider的异常原因是什么?_Android_Android Cursorloader - Fatal编程技术网

Android CursorLoader和acquireUnstableProvider的异常原因是什么?

Android CursorLoader和acquireUnstableProvider的异常原因是什么?,android,android-cursorloader,Android,Android Cursorloader,主要活动: ` ` 日志: 09-13 06:50:08.261: E/AndroidRuntime(11105): FATAL EXCEPTION: AsyncTask #1 09-13 06:50:08.261: E/AndroidRuntime(11105): java.lang.RuntimeException: An error occured while executing doInBackground() 09-13 06:50:08.261: E/AndroidRuntime(1

主要活动:

`

`

日志:

09-13 06:50:08.261: E/AndroidRuntime(11105): FATAL EXCEPTION: AsyncTask #1
09-13 06:50:08.261: E/AndroidRuntime(11105): java.lang.RuntimeException: An error occured while executing doInBackground()
09-13 06:50:08.261: E/AndroidRuntime(11105):    at android.os.AsyncTask$3.done(AsyncTask.java:299)
09-13 06:50:08.261: E/AndroidRuntime(11105):    at java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:273)
09-13 06:50:08.261: E/AndroidRuntime(11105):    at java.util.concurrent.FutureTask.setException(FutureTask.java:124)
09-13 06:50:08.261: E/AndroidRuntime(11105):    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:307)
09-13 06:50:08.261: E/AndroidRuntime(11105):    at java.util.concurrent.FutureTask.run(FutureTask.java:137)
09-13 06:50:08.261: E/AndroidRuntime(11105):    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
09-13 06:50:08.261: E/AndroidRuntime(11105):    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
09-13 06:50:08.261: E/AndroidRuntime(11105):    at java.lang.Thread.run(Thread.java:856)
09-13 06:50:08.261: E/AndroidRuntime(11105): Caused by: java.lang.NullPointerException
09-13 06:50:08.261: E/AndroidRuntime(11105):    at android.content.ContentResolver.acquireUnstableProvider(ContentResolver.java:1094)
09-13 06:50:08.261: E/AndroidRuntime(11105):    at android.content.ContentResolver.query(ContentResolver.java:354)
09-13 06:50:08.261: E/AndroidRuntime(11105):    at android.content.CursorLoader.loadInBackground(CursorLoader.java:65)
09-13 06:50:08.261: E/AndroidRuntime(11105):    at android.content.CursorLoader.loadInBackground(CursorLoader.java:43)
09-13 06:50:08.261: E/AndroidRuntime(11105):    at android.content.AsyncTaskLoader.onLoadInBackground(AsyncTaskLoader.java:301)
09-13 06:50:08.261: E/AndroidRuntime(11105):    at android.content.AsyncTaskLoader$LoadTask.doInBackground(AsyncTaskLoader.java:68)
09-13 06:50:08.261: E/AndroidRuntime(11105):    at android.content.AsyncTaskLoader$LoadTask.doInBackground(AsyncTaskLoader.java:56)
09-13 06:50:08.261: E/AndroidRuntime(11105):    at android.os.AsyncTask$2.call(AsyncTask.java:287)
09-13 06:50:08.261: E/AndroidRuntime(11105):    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
09-13 06:50:08.261: E/AndroidRuntime(11105):    ... 4 more

  • 我使用
    CursorLoader
    从数据库中获取数据,并使用BaseAdapter将数据放入listView
  • 谁能告诉我我的代码出了什么问题?我不知道这个问题。
    谢谢您的帮助。

    MyCursorLoader
    编辑
    doInBackGround
    doInBackGround

    请编辑完整的日志并粘贴到您的问题中。尝试阅读这是一件痛苦的事,它似乎没有什么。我粘贴了LogCat,谢谢。我尝试阅读LogCat,但我不知道我的问题……我建议你将你的问题标题重命名为包括“CursorLoader”和“acquireUnstableProvider”-你的CursorLoader的第65行和第43行是什么?这里可能有线索……我创建了
    MyCurSorLoader.class
    ,但我没有创建
    CursorLoader
    ,所以我不知道
    CursorLoader
    …在活动中有DatabaseHelper引用,在CursorLoader中也有它们。我认为您的活动不应该引用DatabaseHelper。游标加载程序可能应该封装DatabaseHelper。试着逐行调试它,看看NullPointerException发生在哪里。@IwillnotexistIdonotexist:他在回答自己的问题,这在当时是很受鼓励的。话虽如此,OP最好能在答案中增加一些实质性内容
    public class MyCursorLoader extends CursorLoader {
    
    private DataBaseHelper dh = null;
    private SQLiteDatabase db;
    private Context context;
    private String columns[], tableName;
    
    public MyCursorLoader(Context context) {
        super(context);
        this.context = context;
        // TODO Auto-generated constructor stub
    }
    
    public Cursor loadInBackGround() {
        dh = new DataBaseHelper(context);
        db = dh.getReadableDatabase();
    
        tableName = dh.getTableName();
    
        int i = dh.getCount();
        columns = new String[i];
        for (int j = 0; j < i; j++) {
            columns[j] = dh.getColumns(j);
        }
    
        Cursor cursor = db.query(tableName, columns, null, null, null, null,
                null);
        return cursor;
    }
    }
    
    public class DataBaseHelper extends SQLiteOpenHelper {
    
    private final static int dbVersion = 1;
    private final static String dbName = "PhotoerDataBase";
    private final static String tableName = "AlbumTable";
    private String tableColumns[] = { "_id", "Title", "Content", "Date",
            "Location", "Cover" };
    
    public DataBaseHelper(Context context) {
        super(context, dbName, null, dbVersion);
        // TODO Auto-generated constructor stub
    }
    
    @Override
    public void onCreate(SQLiteDatabase db) {
        // TODO Auto-generated method stub
        final String sqlCommand = "CREATE TABLE IF NOT EXISTS " + tableName
                + "( _id INTEGER PRIMARY KEY AUTOINCREMENT, " + tableColumns[1]
                + " TEXT, " + tableColumns[2] + " TEXT, " + tableColumns[3]
                + " TEXT, " + tableColumns[4] + " TEXT, " + tableColumns[5] + " TEXT);";
        db.execSQL(sqlCommand);
    }
    
    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        // TODO Auto-generated method stub
        final String sqlCommand = "DROP TABLE IF EXISTS " + tableName;
        db.execSQL(sqlCommand);
        onCreate(db);
    }
    
    public int getCount() {
        return tableColumns.length;// return 5
    }
    
    public String getColumns(int index) {
        return tableColumns[index];
    }
    
    public String getTableName() {
        return tableName;
    }
    
    }
    
    09-13 06:50:08.261: E/AndroidRuntime(11105): FATAL EXCEPTION: AsyncTask #1
    09-13 06:50:08.261: E/AndroidRuntime(11105): java.lang.RuntimeException: An error occured while executing doInBackground()
    09-13 06:50:08.261: E/AndroidRuntime(11105):    at android.os.AsyncTask$3.done(AsyncTask.java:299)
    09-13 06:50:08.261: E/AndroidRuntime(11105):    at java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:273)
    09-13 06:50:08.261: E/AndroidRuntime(11105):    at java.util.concurrent.FutureTask.setException(FutureTask.java:124)
    09-13 06:50:08.261: E/AndroidRuntime(11105):    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:307)
    09-13 06:50:08.261: E/AndroidRuntime(11105):    at java.util.concurrent.FutureTask.run(FutureTask.java:137)
    09-13 06:50:08.261: E/AndroidRuntime(11105):    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
    09-13 06:50:08.261: E/AndroidRuntime(11105):    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
    09-13 06:50:08.261: E/AndroidRuntime(11105):    at java.lang.Thread.run(Thread.java:856)
    09-13 06:50:08.261: E/AndroidRuntime(11105): Caused by: java.lang.NullPointerException
    09-13 06:50:08.261: E/AndroidRuntime(11105):    at android.content.ContentResolver.acquireUnstableProvider(ContentResolver.java:1094)
    09-13 06:50:08.261: E/AndroidRuntime(11105):    at android.content.ContentResolver.query(ContentResolver.java:354)
    09-13 06:50:08.261: E/AndroidRuntime(11105):    at android.content.CursorLoader.loadInBackground(CursorLoader.java:65)
    09-13 06:50:08.261: E/AndroidRuntime(11105):    at android.content.CursorLoader.loadInBackground(CursorLoader.java:43)
    09-13 06:50:08.261: E/AndroidRuntime(11105):    at android.content.AsyncTaskLoader.onLoadInBackground(AsyncTaskLoader.java:301)
    09-13 06:50:08.261: E/AndroidRuntime(11105):    at android.content.AsyncTaskLoader$LoadTask.doInBackground(AsyncTaskLoader.java:68)
    09-13 06:50:08.261: E/AndroidRuntime(11105):    at android.content.AsyncTaskLoader$LoadTask.doInBackground(AsyncTaskLoader.java:56)
    09-13 06:50:08.261: E/AndroidRuntime(11105):    at android.os.AsyncTask$2.call(AsyncTask.java:287)
    09-13 06:50:08.261: E/AndroidRuntime(11105):    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
    09-13 06:50:08.261: E/AndroidRuntime(11105):    ... 4 more