0

我有这段代码可以将 .db 文件转换为 .csv 并保存在我的 android 设备的 sdcard 中。不幸的是,活动停止并导致了一个java.lang.NullPointerExceptionin doInBackground 方法

protected Boolean doInBackground(final String... args) {
    File dbFile=getDatabasePath(logindatabaseadapter3.DATABASE_NAME);
    //  DbClass DBob = new DbClass(MyDatabaseActivity.this);
    File exportDir = new File(Environment.getExternalStorageDirectory(), "");
    if (!exportDir.exists()) {
        exportDir.mkdirs();
    }

    File file = new File(exportDir, "designtry.csv");

    try {
        file.createNewFile();
        CSVWriter csvWrite = new CSVWriter(new FileWriter(file));

        //SQLiteDatabase db = DBob.getReadableDatabase();
        Cursor curCSV=db.rawQuery("select * from " + Table_Name,null);
        //  Cursor curCSV = db.rawQuery("SELECT * FROM table_ans12",null);

        csvWrite.writeNext(curCSV.getColumnNames());

        while(curCSV.moveToNext()) {
            String arrStr[] ={curCSV.getString(0),curCSV.getString(1),curCSV.getString(2),curCSV.getString(3),curCSV.getString(4),
                    curCSV.getString(5),curCSV.getString(6),curCSV.getString(7),curCSV.getString(8),curCSV.getString(9),
                    curCSV.getString(10),curCSV.getString(11),curCSV.getString(12),curCSV.getString(13),curCSV.getString(14),
                    curCSV.getString(15),curCSV.getString(16),curCSV.getString(17),curCSV.getString(18),curCSV.getString(19)};


            csvWrite.writeNext(arrStr);

        }

        csvWrite.close();
        curCSV.close();
        return true;

    }

    catch(SQLException sqlEx) {
        Log.e("MainActivity", sqlEx.getMessage(), sqlEx);
        return false;
    }
    catch (IOException e) {
        Log.e("MainActivity", e.getMessage(), e);
        return false;
    }
}
4

1 回答 1

0

我找到了解决方案,我只是将它放在错误的类中。

于 2013-06-21T10:03:30.050 回答