2012-09-13 3 views
1

내 사용자를 등록하려고하는데 태그가 성공이라고 말합니다. 하지만 오류가있어서 문제가 어디에 있는지 알 수 없습니다.Android에서 등록이 충돌 함

이 내 코드입니다 :

// Registration in background 
    protected String doInBackground(String... params) { 
     UserFunctions userFunction = new UserFunctions(); 

     JSONObject json = userFunction.registerUser(name, email, password); 
     try { 
      String resu = json.getString(KEY_ERROR); 
      if (Integer.parseInt(resu) == 3) { 
       usernameExist = true; 
      } else if (json.getString(KEY_SUCCESS) != null) { 
       String res = json.getString(KEY_SUCCESS); 
       if (Integer.parseInt(res) == 1) { 
        registered = true; 
        // user successfully registered 
        // Store user details in SQLite 
        // Database 
        DatabaseHandler db = new DatabaseHandler(
          getApplicationContext()); 
        JSONObject json_user = json.getJSONObject("user"); 

        // Clear all previous data in 
        // database 
        userFunction.logoutUser(getApplicationContext()); 

        db.addUser(json_user.getString(KEY_NAME), 
          json_user.getString(KEY_EMAIL), 
          json.getString(KEY_UID), 
          json_user.getString(KEY_CREATED_AT)); 
       } 
      } 
     } catch (JSONException e) { 
      e.printStackTrace(); 
     } 
     return null; 
    } 

    // After completing background task Dismiss the progress dialog 
    protected void onPostExecute(String file_url) { 
     if (usernameExist == true) { 
      registerErrorMsg.setText("Username already existed"); 
     } else if (registered == true) { 
      registerErrorMsg.setText(""); 
      Intent homepage = new Intent(getApplicationContext(), 
        RegisterSuccessActivity.class); 
      homepage.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
      startActivity(homepage); 
      finish(); 
     } else { 
      // Error in registration 
      registerErrorMsg.setText("Email address already existed"); 
     } 
     // dismiss the dialog once done 
     pDialog.dismiss(); 
    } 

이 내 로그 캣입니다 : 내가 배울 수 있도록

09-13 13:39:45.455: E/JSON(868): {"tag":"register","success":1,"error":0,"uid":"5051e1dac29176.90742708","user":{"name":"user","email":"[email protected]","created_at":"2012-09-13 21:38:34","updated_at":null}} 
09-13 13:39:46.225: E/AndroidRuntime(868): FATAL EXCEPTION: AsyncTask #2 
09-13 13:39:46.225: E/AndroidRuntime(868): java.lang.RuntimeException: An error occured while executing doInBackground() 
09-13 13:39:46.225: E/AndroidRuntime(868): at android.os.AsyncTask$3.done(AsyncTask.java:278) 
09-13 13:39:46.225: E/AndroidRuntime(868): at java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:273) 
09-13 13:39:46.225: E/AndroidRuntime(868): at java.util.concurrent.FutureTask.setException(FutureTask.java:124) 
09-13 13:39:46.225: E/AndroidRuntime(868): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:307) 
09-13 13:39:46.225: E/AndroidRuntime(868): at java.util.concurrent.FutureTask.run(FutureTask.java:137) 
09-13 13:39:46.225: E/AndroidRuntime(868): at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:208) 
09-13 13:39:46.225: E/AndroidRuntime(868): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076) 
09-13 13:39:46.225: E/AndroidRuntime(868): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569) 
09-13 13:39:46.225: E/AndroidRuntime(868): at java.lang.Thread.run(Thread.java:856) 
09-13 13:39:46.225: E/AndroidRuntime(868): Caused by: android.database.sqlite.SQLiteException: Can't downgrade database from version 2 to 1 
09-13 13:39:46.225: E/AndroidRuntime(868): at android.database.sqlite.SQLiteOpenHelper.onDowngrade(SQLiteOpenHelper.java:307) 
09-13 13:39:46.225: E/AndroidRuntime(868): at android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:168) 
09-13 13:39:46.225: E/AndroidRuntime(868): at com.stts.sparetimetradingsystem.library.DatabaseHandler.addUser(DatabaseHandler.java:60) 
09-13 13:39:46.225: E/AndroidRuntime(868): at com.stts.sparetimetradingsystem.RegisterActivity$Register.doInBackground(RegisterActivity.java:150) 
09-13 13:39:46.225: E/AndroidRuntime(868): at com.stts.sparetimetradingsystem.RegisterActivity$Register.doInBackground(RegisterActivity.java:1) 
09-13 13:39:46.225: E/AndroidRuntime(868): at android.os.AsyncTask$2.call(AsyncTask.java:264) 
09-13 13:39:46.225: E/AndroidRuntime(868): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305) 
09-13 13:39:46.225: E/AndroidRuntime(868): ... 5 more 

누군가가 나를 가르 칠 수 있습니까? 감사!

+1

응용 프로그램을 삭제하고 다시 설치해보십시오. –

답변

0

이 줄

Caused by: android.database.sqlite.SQLiteException: Can't downgrade database from version 2 to 1 

는 오류를 나타냅니다. 장치가 버전 2

있는 동안 당신이 열어 귀하의 SQLite는 당신은 또한

https://stackoverflow.com/a/8223507/975959

,이 튜토리얼 힘이 답변을 참조 2. 에 SQLite는의 버전을 설정해야합니다, 버전 1 도움 http://www.androidhive.info/2011/11/android-sqlite-database-tutorial/

+0

의미는 이미 데이터베이스 버전을 2 이상으로 설정할 수 있습니까? –

+0

나는 그것에 익숙하지 않지만 내가 읽은 것으로부터 예. 이 오류는 DB 버전이 장치의 실제 DB 버전보다 낮기 때문에 발생합니다. 그냥 2 (또는 그 이상, 내가 가정)로 설정하고 작동합니다. –