2013-09-25 35 views
0

我開發了一個用於將內容更新到數據庫的android應用程序。我在使用asyntask的後臺執行此操作。但我的應用程序獲得了關閉請幫助我。該代碼AsynTask Force在我的應用程序中關閉

class Authenticate extends AsyncTask<String, String, String> 
{ 

@Override 
protected void onPreExecute() { 
    super.onPreExecute(); 
    pDialog = new ProgressDialog(Welcome.this); 
    pDialog.setMessage("Logging in. Please wait..."); 
    pDialog.setIndeterminate(false); 
    pDialog.setCancelable(true); 
    pDialog.show(); 
} 
@Override 
protected String doInBackground(String...args) { 

    List<NameValuePair> params = new ArrayList<NameValuePair>(); 
    params.add(new BasicNameValuePair("s", s)); 
    JSONObject json = jsonParser.makeHttpRequest(url_authenticate,"POST", params); 
    try { 
     int success = json.getInt(TAG_SUCCESS); 
     name=json.getString(TAG_NAME); 
     phone=json.getString(TAG_PHONE); 
     fid=json.getString(TAG_FID); 
     if (success == 1) { 
      // successfully updated 
      Intent i = new Intent("com.example.walcliffbusinesssuite.Redirect"); 
      startActivity(i); 
     } else { 
      // failed to update product 
     } 
    } catch (JSONException e) { 
     e.printStackTrace(); 
    } 
    return null; 
} 

protected void onPostExecute() { 
    pDialog.dismiss(); 
} 


} 

的logcat的是

09-25 06:11:27.970: E/AndroidRuntime(929): FATAL EXCEPTION: AsyncTask #5 
09-25 06:11:27.970: E/AndroidRuntime(929): java.lang.RuntimeException: An error occured while executing doInBackground() 
09-25 06:11:27.970: E/AndroidRuntime(929): at android.os.AsyncTask$3.done(AsyncTask.java:299) 
09-25 06:11:27.970: E/AndroidRuntime(929): at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:352) 
09-25 06:11:27.970: E/AndroidRuntime(929): at java.util.concurrent.FutureTask.setException(FutureTask.java:219) 
09-25 06:11:27.970: E/AndroidRuntime(929): at java.util.concurrent.FutureTask.run(FutureTask.java:239) 
09-25 06:11:27.970: E/AndroidRuntime(929): at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230) 
09-25 06:11:27.970: E/AndroidRuntime(929): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080) 
09-25 06:11:27.970: E/AndroidRuntime(929): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573) 
09-25 06:11:27.970: E/AndroidRuntime(929): at java.lang.Thread.run(Thread.java:856) 
09-25 06:11:27.970: E/AndroidRuntime(929): Caused by: java.lang.SecurityException: Permission denied (missing INTERNET permission?) 
09-25 06:11:27.970: E/AndroidRuntime(929): at java.net.InetAddress.lookupHostByName(InetAddress.java:418) 
09-25 06:11:27.970: E/AndroidRuntime(929): at java.net.InetAddress.getAllByNameImpl(InetAddress.java:236) 
09-25 06:11:27.970: E/AndroidRuntime(929): at java.net.InetAddress.getAllByName(InetAddress.java:214) 
09-25 06:11:27.970: E/AndroidRuntime(929): at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:137) 
09-25 06:11:27.970: E/AndroidRuntime(929): at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:164) 
09-25 06:11:27.970: E/AndroidRuntime(929): at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:119) 
09-25 06:11:27.970: E/AndroidRuntime(929): at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:360) 
09-25 06:11:27.970: E/AndroidRuntime(929): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:555) 
09-25 06:11:27.970: E/AndroidRuntime(929): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487) 
09-25 06:11:27.970: E/AndroidRuntime(929): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:465) 

回答

3

造成的:java.lang.SecurityException異常:在清單權限被拒絕(?缺少 INTERNET權限)

添加此文件

<uses-permission android:name="android.permission.INTERNET"/> 
1

在manifest.xml文件中添加Internet的權限

<uses-permission android:name="android.permission.INTERNET"/>