gpt4 book ai didi

android - Gettine 异常 : java. lang.IllegalStateException:数据库未打开

转载 作者:行者123 更新时间:2023-11-29 18:01:26 26 4
gpt4 key购买 nike

虽然这是一个常见的错误,并且可能有很多帖子与此异常相关。但这是奇怪的情况。我在 Android 2.2 中收到 java.lang.IllegalStateException: database not open 异常。在其余手机中,它运行良好。

日志:

java.lang.IllegalStateException: database not open
at android.database.sqlite.SQLiteDatabase.queryWithFactory(SQLiteDatabase.java:1291)
at android.database.sqlite.SQLiteDatabase.query(SQLiteDatabase.java:1251)
at android.database.sqlite.SQLiteDatabase.query(SQLiteDatabase.java:1331)
at com.mythrii.ilpa.DataHelper.checkRating(DataHelper.java:126)
at com.mythrii.ilpa.SplashActivity$1.run(SplashActivity.java:35)
at android.os.Handler.handleCallback(Handler.java:587)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:144)
at android.app.ActivityThread.main(ActivityThread.java:4937)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:521)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:858)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
at dalvik.system.NativeStart.main(Native Method)

我的代码:

public class SplashActivity extends ActivityHelper
{
private DataHelper dh;
// Set the display time, in milliseconds (or extract it out as a configurable parameter)
private final int SPLASH_DISPLAY_LENGTH = 3000;
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.act__splash);

dh = new DataHelper(this);

dh.inserORupdateRating();
}

protected void onResume()
{
super.onResume();

new Handler().postDelayed(new Runnable()
{
public void run()
{
clearPref();
PrefBoolEdit("rating",dh.checkRating());//=> Here is the exception
SplashActivity.this.finish();
Intent mainIntent = new Intent(SplashActivity.this, HomeActivity.class);
SplashActivity.this.startActivity(mainIntent);
}
}, SPLASH_DISPLAY_LENGTH);

}

protected void onDestroy()
{
super.onDestroy();
if (dh != null)
{
dh.close();
}
}
}

我正在使用这个构造函数来调用每个 Activity

数据助手

 public DataHelper(Context context) 
{

this.context = context;
openHelper = new OpenHelper(this.context);
this.db = openHelper.getWritableDatabase();

Calendar c = Calendar.getInstance();
formattedDate = df.format(c.getTime());
}

检查评级

   public boolean checkRating()
{
Cursor cursor = this.db.query(TABLE_NAME_1, new String[] { "option" },
null, null, null, null, null);

String option = null;
//String date = null;

boolean bool = false;

if (cursor.moveToFirst())
{
do {
//date = cursor.getString(0);
option = cursor.getString(0);

} while (cursor.moveToNext());
}
if (cursor != null && !cursor.isClosed()) {
cursor.close();
}

if(getRateCount()>0)
{
if(!option.equals(ALREADY_RATED))
{
bool = true;
}
else
{
bool = false;
}
}
else
{
bool = false;
}
return bool;
}

谁能帮帮我..

最佳答案

在执行任何操作之前你应该打开数据库

dh.open();

See this onealso this one

关于android - Gettine 异常 : java. lang.IllegalStateException:数据库未打开,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15893338/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com