2014-03-19 48 views
0

我在我的應用程序上使用webviewclient進行Auth登錄,如foursquare,但我的應用程序啓動時收到錯誤。當我的應用程序運行時WebViewClient崩潰

錯誤這樣表示:

E/qdutils﹕ FBIOGET_FSCREENINFO failed 
A/libc﹕ Fatal signal 6 (SIGABRT) at 0x00003d60 (code=-6), thread 15712 (com.example.app) 

這裏是我的代碼:

public class AuthWebClient extends WebViewClient { 
private Context context; 
private HDData hdData; 
private HDDBHelper hddbHelper; 
private String accessToken; 

public AuthWebClient(Context ctx){ 
    context = ctx; 
} 

@Override 
public boolean shouldOverrideUrlLoading(WebView webView, String url){ 

    String code; 

    webView.loadUrl(url); 

    hdData = new HDData(context, ""); 

    if(url.startsWith(hdData.getCallbackUrl())){ 
     String urls[] = url.split("="); 

     code = urls[1].toString(); 
     ArrayList<NameValuePair> data = new ArrayList<NameValuePair>(); 

     data.add(new BasicNameValuePair("ClientID", hdData.getClientId())); 
     data.add(new BasicNameValuePair("ClientSecret", hdData.getClientSecret())); 
     data.add(new BasicNameValuePair("Code", code)); 
     data.add(new BasicNameValuePair("CallbackURL", hdData.getCallbackUrl())); 

     hddbHelper = new HDDBHelper(context); 


     AsyncTask<ArrayList<NameValuePair>, Integer, JSONObject> handler = new PostServiceHandler(hdData.getReqTokenUrl(), "", this.context) { 
      @Override 
      protected void onPostExecute(JSONObject result) { 
       try{ 
        accessToken = result.getJSONObject("AccessToken").toString(); 

        if(hddbHelper.isHDDataExists(hdData.getClientId())){ 
         hdData.setAccessToken(accessToken); 
         hddbHelper.updateHDData(hdData); 
        } 
        else{ 
         HDData hdIn = new HDData(context, accessToken); 
         hdIn.setClientId(hdData.getClientId()); 
         hdIn.setClientSecret(hdData.getClientSecret()); 
         hdIn.setAccessToken(accessToken); 
         hddbHelper.addHDData(hdIn); 
        } 

       } 
       catch (JSONException e){ 
        e.printStackTrace(); 
       } 

      } 

     }.execute(data); 
    } 
    return true; 
} 

有誰知道問題是什麼?我該如何解決它?

+1

顯示你的logcat –

回答

0

請從您的shouldOverrideUrlLoading實施中刪除致電loadUrl。由於負載已在進行中,因此不需要。

相關問題