如何修复java.lang.InstantiationException?
我正在尝试使用FAB导出我的数据库。这就是错误所在 java.lang.RuntimeException:无法实例化活动组件信息{com.example.qrac1/com.example.qrac1.ClassInfo活动}:java.lang.InstanceionException:java.lang.Class(com.example.qrac1.ClassInfo活动)没有零参数构造函数 在我插入以下代码之前,一切正常:如何修复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
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类中,只需编写一个没有参数的构造函数,然后看看它是否有效。。