如何修复java.lang.InstantiationException?

如何修复java.lang.InstantiationException?,java,android,android-studio,Java,Android,Android Studio,我正在尝试使用FAB导出我的数据库。这就是错误所在 java.lang.RuntimeException:无法实例化活动组件信息{com.example.qrac1/com.example.qrac1.ClassInfo活动}:java.lang.InstanceionException:java.lang.Class(com.example.qrac1.ClassInfo活动)没有零参数构造函数 在我插入以下代码之前,一切正常: FloatingActionButton fab1 = (Flo

我正在尝试使用FAB导出我的数据库。这就是错误所在

java.lang.RuntimeException:无法实例化活动组件信息{com.example.qrac1/com.example.qrac1.ClassInfo活动}:java.lang.InstanceionException:java.lang.Class(com.example.qrac1.ClassInfo活动)没有零参数构造函数

在我插入以下代码之前,一切正常:

FloatingActionButton fab1 = (FloatingActionButton) findViewById(R.id.fab1);
    fab1.setOnClickListener(new View.OnClickListener() {
        Intent sIntent = getIntent();
        ExampleClass sClass = sIntent.getParcelableExtra("selected");
        String selCode = sClass.getqCode();

        @Override
        public void onClick(View v) {
            exportDataBaseIntoCSV();
        }
    });
}



public void exportDataBaseIntoCSV(){
    Intent sIntent = getIntent();
    ExampleClass sClass = sIntent.getParcelableExtra("selected");
    String selCode = sClass.getqCode();

    ClassDB db = new ClassDB(context);//here CredentialDb is my database. you can create your db object.
    File exportDir = new File(Environment.getExternalStorageDirectory(), "");

    if (!exportDir.exists())
    {
        exportDir.mkdirs();
    }

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

    try
    {
        file.createNewFile();
        CSVWriter csvWrite = new CSVWriter(new FileWriter(file));
        SQLiteDatabase sql_db = db.getReadableDatabase();//here create a method ,and return SQLiteDatabaseObject.getReadableDatabase();
        Cursor curCSV = sql_db.rawQuery("SELECT * FROM "+selCode,null);
        csvWrite.writeNext(curCSV.getColumnNames());

        while(curCSV.moveToNext())
        {
            //Which column you want to export you can add over here...
            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)};
            csvWrite.writeNext(arrStr);
        }

        csvWrite.close();
        curCSV.close();
    }
    catch(Exception sqlEx)
    {
        Log.e("Error:", sqlEx.getMessage(), sqlEx);
    }

}

这是我第一次看到此错误,因此我不知道如何修复此错误。

对象似乎无法实例化。请尝试在类中添加参数化构造函数。

我认为您不应该编写以下代码:

Intent sIntent = getIntent();
ExampleClass sClass = sIntent.getParcelableExtra("selected");
String selCode = sClass.getqCode();
在你的内心 新建View.OnClickListener()匿名类。
它不在任何方法中,并且已经写入exportDataBaseIntoCSV()方法中。

我在您的代码中没有看到任何使用
java.lang.Class
,因此您确定这是导致错误的代码吗?@Andreas我编辑了错误。它没有读取部件什么是
classinfo活动
?它有零参数构造函数吗?若否,原因为何?显然,它需要一个字段作为活动的一部分。
视图.OnClickListener
匿名类中的3个字段的用途是什么?请您的问题提供一个演示问题以及完整问题的示例。声明的异常不太可能来自给定的代码。您能进一步解释我如何做到这一点吗?在ClassDB类中,只需编写一个没有参数的构造函数,然后看看它是否有效。。