2012-07-13 79 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数据库异常。

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

相关问题