我的android数据库应用程序在android 2.x中不工作

我的android数据库应用程序在android 2.x中不工作,android,sqlite,Android,Sqlite,我有一个应用程序在android 4.x中运行平稳,但在android 2.x中运行不平稳。 我试图做的是从web服务中获取一些信息并存储在数据库中。 我该怎么办? 这是产生错误的代码: public String CallMethod(String methodName,ArrayList<ServiceParam> paramList) { String result = "default"; SoapObject request = new So

我有一个应用程序在android 4.x中运行平稳,但在android 2.x中运行不平稳。
我试图做的是从web服务中获取一些信息并存储在数据库中。 我该怎么办? 这是产生错误的代码:

public String CallMethod(String methodName,ArrayList<ServiceParam> paramList) {
        String result = "default";
        SoapObject request = new SoapObject(namespace, methodName);
        PropertyInfo pi = new PropertyInfo();

        for(int i=0;i<paramList.size();i++){
            ServiceParam serviceParam;
            serviceParam = paramList.get(i);
            pi = new PropertyInfo();
            pi.setName(serviceParam.name);
            pi.setValue(serviceParam.value);
            pi.setType(serviceParam.type);
            request.addProperty(pi);
        }

        SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
        envelope.dotNet = true;
        envelope.setOutputSoapObject(request);
        HttpTransportSE androidHttpTransport = new HttpTransportSE(url);
        try {
            androidHttpTransport.call(namespace+methodName, envelope);
            SoapPrimitive response = (SoapPrimitive) envelope.getResponse();
            result= response.toString();
            output = result;

        } catch (Exception e) {
            Log.d("Ehsan", e.getMessage());
            Log.d("Ehsan", e.getLocalizedMessage());
            e.printStackTrace();
        }

        return result;
    }
这是我的日志猫:

11-26 11:26:02.666: W/SQLiteCompiledSql(12820): Releasing statement in a finalizer. Please ensure that you explicitly call close() on your cursor: SELECT * FROM settings WHERE name='PersonId'
11-26 11:26:02.666: W/SQLiteCompiledSql(12820): android.database.sqlite.DatabaseObjectNotClosedException: Application did not close the cursor or database object that was opened here
11-26 11:26:02.666: W/SQLiteCompiledSql(12820):     at android.database.sqlite.SQLiteCompiledSql.<init>(SQLiteCompiledSql.java:62)
11-26 11:26:02.666: W/SQLiteCompiledSql(12820):     at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:80)
11-26 11:26:02.666: W/SQLiteCompiledSql(12820):     at android.database.sqlite.SQLiteQuery.<init>(SQLiteQuery.java:46)
11-26 11:26:02.666: W/SQLiteCompiledSql(12820):     at android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:42)
11-26 11:26:02.666: W/SQLiteCompiledSql(12820):     at android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1345)
11-26 11:26:02.666: W/SQLiteCompiledSql(12820):     at android.database.sqlite.SQLiteDatabase.rawQuery(SQLiteDatabase.java:1315)
11-26 11:26:02.666: W/SQLiteCompiledSql(12820):     at ClassLibrary.DbHelper.select(DbHelper.java:105)
11-26 11:26:02.666: W/SQLiteCompiledSql(12820):     at com.example.shareholders.entities.Settings.select(Settings.java:93)
11-26 11:26:02.666: W/SQLiteCompiledSql(12820):     at com.example.shareholders.entities.Settings.getValue(Settings.java:56)
11-26 11:26:02.666: W/SQLiteCompiledSql(12820):     at com.example.shareholders.Login.onCreate(Login.java:24)
11-26 11:26:02.666: W/SQLiteCompiledSql(12820):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
11-26 11:26:02.666: W/SQLiteCompiledSql(12820):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)
11-26 11:26:02.666: W/SQLiteCompiledSql(12820):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
11-26 11:26:02.666: W/SQLiteCompiledSql(12820):     at android.app.ActivityThread.access$2300(ActivityThread.java:125)
11-26 11:26:02.666: W/SQLiteCompiledSql(12820):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
11-26 11:26:02.666: W/SQLiteCompiledSql(12820):     at android.os.Handler.dispatchMessage(Handler.java:99)
11-26 11:26:02.666: W/SQLiteCompiledSql(12820):     at android.os.Looper.loop(Looper.java:123)
11-26 11:26:02.666: W/SQLiteCompiledSql(12820):     at android.app.ActivityThread.main(ActivityThread.java:4627)
11-26 11:26:02.666: W/SQLiteCompiledSql(12820):     at java.lang.reflect.Method.invokeNative(Native Method)
11-26 11:26:02.666: W/SQLiteCompiledSql(12820):     at java.lang.reflect.Method.invoke(Method.java:521)
11-26 11:26:02.666: W/SQLiteCompiledSql(12820):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
11-26 11:26:02.666: W/SQLiteCompiledSql(12820):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
11-26 11:26:02.666: W/SQLiteCompiledSql(12820):     at dalvik.system.NativeStart.main(Native Method)
11-26 11:26:02.736: E/Database(12820): close() was never explicitly called on database '/data/data/com.example.shareholders/databases/shareholders.db' 
11-26 11:26:02.736: E/Database(12820): android.database.sqlite.DatabaseObjectNotClosedException: Application did not close the cursor or database object that was opened here
11-26 11:26:02.736: E/Database(12820):  at android.database.sqlite.SQLiteDatabase.<init>(SQLiteDatabase.java:1810)
11-26 11:26:02.736: E/Database(12820):  at android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:817)
11-26 11:26:02.736: E/Database(12820):  at android.database.sqlite.SQLiteDatabase.openOrCreateDatabase(SQLiteDatabase.java:851)
11-26 11:26:02.736: E/Database(12820):  at android.database.sqlite.SQLiteDatabase.openOrCreateDatabase(SQLiteDatabase.java:844)
11-26 11:26:02.736: E/Database(12820):  at android.app.ContextImpl.openOrCreateDatabase(ContextImpl.java:540)
11-26 11:26:02.736: E/Database(12820):  at android.content.ContextWrapper.openOrCreateDatabase(ContextWrapper.java:203)
11-26 11:26:02.736: E/Database(12820):  at android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:98)
11-26 11:26:02.736: E/Database(12820):  at android.database.sqlite.SQLiteOpenHelper.getReadableDatabase(SQLiteOpenHelper.java:158)
11-26 11:26:02.736: E/Database(12820):  at ClassLibrary.DbHelper.select(DbHelper.java:99)
11-26 11:26:02.736: E/Database(12820):  at com.example.shareholders.entities.Settings.select(Settings.java:93)
11-26 11:26:02.736: E/Database(12820):  at com.example.shareholders.entities.Settings.getValue(Settings.java:56)
11-26 11:26:02.736: E/Database(12820):  at com.example.shareholders.Login.onCreate(Login.java:24)
11-26 11:26:02.736: E/Database(12820):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
11-26 11:26:02.736: E/Database(12820):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)
11-26 11:26:02.736: E/Database(12820):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
11-26 11:26:02.736: E/Database(12820):  at android.app.ActivityThread.access$2300(ActivityThread.java:125)
11-26 11:26:02.736: E/Database(12820):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
11-26 11:26:02.736: E/Database(12820):  at android.os.Handler.dispatchMessage(Handler.java:99)
11-26 11:26:02.736: E/Database(12820):  at android.os.Looper.loop(Looper.java:123)
11-26 11:26:02.736: E/Database(12820):  at android.app.ActivityThread.main(ActivityThread.java:4627)
11-26 11:26:02.736: E/Database(12820):  at java.lang.reflect.Method.invokeNative(Native Method)
11-26 11:26:02.736: E/Database(12820):  at java.lang.reflect.Method.invoke(Method.java:521)
11-26 11:26:02.736: E/Database(12820):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
11-26 11:26:02.736: E/Database(12820):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
11-26 11:26:02.736: E/Database(12820):  at dalvik.system.NativeStart.main(Native Method)
11-26 11:26:02.666:W/SQLiteCompiledSql(12820):在终结器中释放语句。请确保在光标上显式调用close():从name='PersonId'所在的设置中选择*
11-26 11:26:02.666:W/SQLiteCompiledSql(12820):android.database.sqlite.DatabaseObjectNotClosedException:应用程序未关闭在此处打开的游标或数据库对象
11-26 11:26:02.666:W/SQLiteCompiledSql(12820):位于android.database.sqlite.SQLiteCompiledSql.(SQLiteCompiledSql.java:62)
11-26 11:26:02.666:W/SQLiteCompiledSql(12820):位于android.database.sqlite.SQLiteProgram.(SQLiteProgram.java:80)
11-26 11:26:02.666:W/SQLiteCompiledSql(12820):位于android.database.sqlite.SQLiteQuery.(SQLiteQuery.java:46)
11-26 11:26:02.666:W/SQLiteCompiledSql(12820):位于android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:42)
11-26 11:26:02.666:W/SQLiteCompiledSql(12820):位于android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1345)
11-26 11:26:02.666:W/SQLiteCompiledSql(12820):位于android.database.sqlite.SQLiteDatabase.rawQuery(SQLiteDatabase.java:1315)
11-26 11:26:02.666:W/SQLiteCompiledSql(12820):位于ClassLibrary.DbHelper.select(DbHelper.java:105)
11-26 11:26:02.666:W/SQLiteCompiledSql(12820):位于com.example.股东.entities.Settings.select(Settings.java:93)
11-26 11:26:02.666:W/SQLiteCompiledSql(12820):位于com.example.股东.entities.Settings.getValue(Settings.java:56)
11-26 11:26:02.666:W/SQLiteCompiledSql(12820):位于com.example.genders.Login.onCreate(Login.java:24)
11-26 11:26:02.666:W/SQLiteCompiledSql(12820):位于android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
11-26 11:26:02.666:W/SQLiteCompiledSql(12820):位于android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)
11-26 11:26:02.666:W/SQLiteCompiledSql(12820):位于android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
11-26 11:26:02.666:W/SQLiteCompiledSql(12820):位于android.app.ActivityThread.access$2300(ActivityThread.java:125)
11-26 11:26:02.666:W/SQLiteCompiledSql(12820):位于android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
11-26 11:26:02.666:W/SQLiteCompiledSql(12820):位于android.os.Handler.dispatchMessage(Handler.java:99)
11-26 11:26:02.666:W/SQLiteCompiledSql(12820):位于android.os.Looper.loop(Looper.java:123)
11-26 11:26:02.666:W/SQLiteCompiledSql(12820):位于android.app.ActivityThread.main(ActivityThread.java:4627)
11-26 11:26:02.666:W/SQLiteCompiledSql(12820):位于java.lang.reflect.Method.invokenactive(本机方法)
11-26 11:26:02.666:W/SQLiteCompiledSql(12820):位于java.lang.reflect.Method.invoke(Method.java:521)
11-26 11:26:02.666:W/SQLiteCompiledSql(12820):位于com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
11-26 11:26:02.666:W/SQLiteCompiledSql(12820):位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
11-26 11:26:02.666:W/SQLiteCompiledSql(12820):位于dalvik.system.NativeStart.main(本机方法)
11-26 11:26:02.736:E/Database(12820):从未对数据库“/data/data/com.example.genders/databases/genders.db”显式调用close()
11-26 11:26:02.736:E/Database(12820):android.Database.sqlite.DatabaseObjectNotClosedException:应用程序未关闭在此打开的游标或数据库对象
11-26 11:26:02.736:E/Database(12820):位于android.Database.sqlite.SQLiteDatabase.(SQLiteDatabase.java:1810)
11-26 11:26:02.736:E/Database(12820):位于android.Database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:817)
11-26 11:26:02.736:E/Database(12820):位于android.Database.sqlite.SQLiteDatabase.openOrCreateDatabase(SQLiteDatabase.java:851)
11-26 11:26:02.736:E/Database(12820):位于android.Database.sqlite.SQLiteDatabase.openOrCreateDatabase(SQLiteDatabase.java:844)
11-26 11:26:02.736:E/Database(12820):位于android.app.ContextImpl.openOrCreateDatabase(ContextImpl.java:540)
11-26 11:26:02.736:E/Database(12820):位于android.content.ContextWrapper.openOrCreateDatabase(ContextWrapper.java:203)
11-26 11:26:02.736:E/Database(12820):位于android.Database.sqlite.SQLiteOpenHelper.getwriteabledatabase(SQLiteOpenHelper.java:98)
11-26 11:26:02.736:E/Database(12820):位于android.Database.sqlite.SQLiteOpenHelper.getReadableDatabase(SQLiteOpenHelper.java:158)
11-26 11:26:02.736:E/Database(12820):在ClassLibrary.DbHelper.select(DbHelper.java:99)
11-26 11:26:02.736:E/Database(12820):在com.example.genders.entities.Settings.select(Settings.java:93)
11-26 11:26:02.736:E/Database(12820):在com.example.genders.entities.Settings.getValue(Settings.java:56)
11-26 11:26:02.736:E/Database(12820):在com.example.genders.Login.onCreate(Login.java:24)
11-26 11:26:02.736:E/数据库(12820):在android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
11-26 11:26:02.736:E/数据库(12820):位于android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)
11-26 11:26:02.736:E/Database(12820):位于android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
11-26 11:26:02.736:E/数据库(12820):位于android.app.ActivityThread.access$2300(ActivityThread.java:125)
11-26 11:26:02.736:E/数据库(12820):在android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
11-26 11:26:02.736:E/Database(12820):在android.os.Handler.dispatchMessage(Handler.java:99)上
11-26 11:26:02.736:E/Database(12820):在android.os.Looper.loop(Looper.java:123)
11-26 11:26:02.736:E/数据库(12820):位于android.app.ActivityThread.main(ActivityThr)
11-26 11:26:02.666: W/SQLiteCompiledSql(12820): Releasing statement in a finalizer. Please ensure that you explicitly call close() on your cursor: SELECT * FROM settings WHERE name='PersonId'
11-26 11:26:02.666: W/SQLiteCompiledSql(12820): android.database.sqlite.DatabaseObjectNotClosedException: Application did not close the cursor or database object that was opened here
11-26 11:26:02.666: W/SQLiteCompiledSql(12820):     at android.database.sqlite.SQLiteCompiledSql.<init>(SQLiteCompiledSql.java:62)
11-26 11:26:02.666: W/SQLiteCompiledSql(12820):     at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:80)
11-26 11:26:02.666: W/SQLiteCompiledSql(12820):     at android.database.sqlite.SQLiteQuery.<init>(SQLiteQuery.java:46)
11-26 11:26:02.666: W/SQLiteCompiledSql(12820):     at android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:42)
11-26 11:26:02.666: W/SQLiteCompiledSql(12820):     at android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1345)
11-26 11:26:02.666: W/SQLiteCompiledSql(12820):     at android.database.sqlite.SQLiteDatabase.rawQuery(SQLiteDatabase.java:1315)
11-26 11:26:02.666: W/SQLiteCompiledSql(12820):     at ClassLibrary.DbHelper.select(DbHelper.java:105)
11-26 11:26:02.666: W/SQLiteCompiledSql(12820):     at com.example.shareholders.entities.Settings.select(Settings.java:93)
11-26 11:26:02.666: W/SQLiteCompiledSql(12820):     at com.example.shareholders.entities.Settings.getValue(Settings.java:56)
11-26 11:26:02.666: W/SQLiteCompiledSql(12820):     at com.example.shareholders.Login.onCreate(Login.java:24)
11-26 11:26:02.666: W/SQLiteCompiledSql(12820):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
11-26 11:26:02.666: W/SQLiteCompiledSql(12820):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)
11-26 11:26:02.666: W/SQLiteCompiledSql(12820):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
11-26 11:26:02.666: W/SQLiteCompiledSql(12820):     at android.app.ActivityThread.access$2300(ActivityThread.java:125)
11-26 11:26:02.666: W/SQLiteCompiledSql(12820):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
11-26 11:26:02.666: W/SQLiteCompiledSql(12820):     at android.os.Handler.dispatchMessage(Handler.java:99)
11-26 11:26:02.666: W/SQLiteCompiledSql(12820):     at android.os.Looper.loop(Looper.java:123)
11-26 11:26:02.666: W/SQLiteCompiledSql(12820):     at android.app.ActivityThread.main(ActivityThread.java:4627)
11-26 11:26:02.666: W/SQLiteCompiledSql(12820):     at java.lang.reflect.Method.invokeNative(Native Method)
11-26 11:26:02.666: W/SQLiteCompiledSql(12820):     at java.lang.reflect.Method.invoke(Method.java:521)
11-26 11:26:02.666: W/SQLiteCompiledSql(12820):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
11-26 11:26:02.666: W/SQLiteCompiledSql(12820):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
11-26 11:26:02.666: W/SQLiteCompiledSql(12820):     at dalvik.system.NativeStart.main(Native Method)
11-26 11:26:02.736: E/Database(12820): close() was never explicitly called on database '/data/data/com.example.shareholders/databases/shareholders.db' 
11-26 11:26:02.736: E/Database(12820): android.database.sqlite.DatabaseObjectNotClosedException: Application did not close the cursor or database object that was opened here
11-26 11:26:02.736: E/Database(12820):  at android.database.sqlite.SQLiteDatabase.<init>(SQLiteDatabase.java:1810)
11-26 11:26:02.736: E/Database(12820):  at android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:817)
11-26 11:26:02.736: E/Database(12820):  at android.database.sqlite.SQLiteDatabase.openOrCreateDatabase(SQLiteDatabase.java:851)
11-26 11:26:02.736: E/Database(12820):  at android.database.sqlite.SQLiteDatabase.openOrCreateDatabase(SQLiteDatabase.java:844)
11-26 11:26:02.736: E/Database(12820):  at android.app.ContextImpl.openOrCreateDatabase(ContextImpl.java:540)
11-26 11:26:02.736: E/Database(12820):  at android.content.ContextWrapper.openOrCreateDatabase(ContextWrapper.java:203)
11-26 11:26:02.736: E/Database(12820):  at android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:98)
11-26 11:26:02.736: E/Database(12820):  at android.database.sqlite.SQLiteOpenHelper.getReadableDatabase(SQLiteOpenHelper.java:158)
11-26 11:26:02.736: E/Database(12820):  at ClassLibrary.DbHelper.select(DbHelper.java:99)
11-26 11:26:02.736: E/Database(12820):  at com.example.shareholders.entities.Settings.select(Settings.java:93)
11-26 11:26:02.736: E/Database(12820):  at com.example.shareholders.entities.Settings.getValue(Settings.java:56)
11-26 11:26:02.736: E/Database(12820):  at com.example.shareholders.Login.onCreate(Login.java:24)
11-26 11:26:02.736: E/Database(12820):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
11-26 11:26:02.736: E/Database(12820):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)
11-26 11:26:02.736: E/Database(12820):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
11-26 11:26:02.736: E/Database(12820):  at android.app.ActivityThread.access$2300(ActivityThread.java:125)
11-26 11:26:02.736: E/Database(12820):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
11-26 11:26:02.736: E/Database(12820):  at android.os.Handler.dispatchMessage(Handler.java:99)
11-26 11:26:02.736: E/Database(12820):  at android.os.Looper.loop(Looper.java:123)
11-26 11:26:02.736: E/Database(12820):  at android.app.ActivityThread.main(ActivityThread.java:4627)
11-26 11:26:02.736: E/Database(12820):  at java.lang.reflect.Method.invokeNative(Native Method)
11-26 11:26:02.736: E/Database(12820):  at java.lang.reflect.Method.invoke(Method.java:521)
11-26 11:26:02.736: E/Database(12820):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
11-26 11:26:02.736: E/Database(12820):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
11-26 11:26:02.736: E/Database(12820):  at dalvik.system.NativeStart.main(Native Method)
 public int update(String name, String value) {
    DbHelper db = new DbHelper(context);
    try {
        db.openDataBase();
        ContentValues cv = new ContentValues();

        cv.put("value", value);
        db.update("settings", cv, "name='" + name + "'");
    } catch (Exception e) {
        xLog.error(e.getMessage());
    } finally {
        db.closeDataBase();
    }
    return 0;
}
 private void openDataBase() throws SQLException {
        database = databaseHelper.getWritableDatabase();
    }

    private void closeDataBase() {
        if (databaseHelper != null) {
            databaseHelper.close();
        }
    }