2012-07-13 57 views
1

我在Facebook中創建了一個包含用戶身份驗證的應用程序。但是當我最小化,恢復,然後退出Facebook時,它會引發以下錯誤。我在Android應用程序中登出Facebook時出現此錯誤

07-13 16:35:42.989: E/AndroidRuntime(23464): FATAL EXCEPTION: Thread-47 
07-13 16:35:42.989: E/AndroidRuntime(23464): android.database.sqlite.SQLiteDiskIOException: error code 10: disk I/O error 
07-13 16:35:42.989: E/AndroidRuntime(23464): at android.database.sqlite.SQLiteStatement.native_execute(Native Method) 
07-13 16:35:42.989: E/AndroidRuntime(23464): at android.database.sqlite.SQLiteStatement.execute(SQLiteStatement.java:61) 
07-13 16:35:42.989: E/AndroidRuntime(23464): at android.database.sqlite.SQLiteDatabase.delete(SQLiteDatabase.java:1632) 
07-13 16:35:42.989: E/AndroidRuntime(23464): at android.webkit.WebViewDatabase.clearCookies(WebViewDatabase.java:543) 
07-13 16:35:42.989: E/AndroidRuntime(23464): at android.webkit.CookieSyncManager.clearAllCookies(CookieSyncManager.java:128) 
07-13 16:35:42.989: E/AndroidRuntime(23464): at android.webkit.CookieManager$2.run(CookieManager.java:532) 
07-13 16:35:42.989: E/AndroidRuntime(23464): at java.lang.Thread.run(Thread.java:1019) 

和代碼生成錯誤是

 private void fbLogout() { 
    dialog.setMessage("Disconnecting from Facebook"); 
    dialog.show(); 

    new Thread() { 
     @Override 
     public void run() { 
      Log.v("fbLogout() Clear", "fbLogout() Clear"); 
      SessionStore.clear(getParent()); 

      int what = 1;     
      try { 
       Log.v("fbLogout() Clear", "fbLogout() before logout()"); 
       mFacebook.logout(getParent()); 
       Log.v("fbLogout() Clear", "fbLogout()after logout()"); 

       what = 0; 
      } catch (Exception ex) {     
       ex.printStackTrace();     
      }     
      mHandler.sendMessage(mHandler.obtainMessage(what)); 
     } 
    }.start(); 
    } 

    private Handler mHandler = new Handler() { 
    @Override 
    public void handleMessage(Message msg) { 
     dialog.dismiss();   
     if (msg.what == 1) { 
      Toast.makeText(getParent(), "Facebook logout failed", Toast.LENGTH_SHORT).show(); 
     } else { 
      Toast.makeText(getParent(), "Disconnected from Facebook", Toast.LENGTH_SHORT).show(); 
     } 
    } 
}; 




    public String logout(Context context) 
     throws MalformedURLException, IOException { 
    Util.clearCookies(context); 
    Bundle b = new Bundle();//Generates Error 
    b.putString("method", "auth.expireSession");//Generates Error 
    String response = request(b); 
    setAccessToken(null); 
    setAccessExpires(0); 
    return response; 
+0

請給出錯誤代碼。 – 2012-07-13 12:01:56

+0

我用Code更新了這個問題 – 2012-07-13 13:07:51

回答

0
android.database.sqlite.SQLiteDiskIOException: error code 10: disk I/O error 

這說明了一切。設備的內部存儲設備存在物理錯誤。如果您的設備仍在保修期內,承運人應爲您替換。

未來,考慮在模擬器上進行更多的開發,以免給設備的閃存造成太大的壓力。 :)

0

當您第一次登錄到應用程序時,Facebook的Web視圖在數據庫上創建了它。並將其自己的數據庫文件存儲到應用程序的緩存中以保存會話。

我想你會刪除你的應用程序中的緩存,所以webview的數據庫被自動刪除。 ans下次嘗試從Facebook註銷DVM會引發SQlite數據庫異常。

只需查看模擬器的文件資源管理器。 你可能有任何解決方案。 :-)

相關問題