0

コンテンツをデータベースに更新するための Android アプリを開発しています。非同期タスクを使用してバックグラウンドで実行しています。コードは

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();
}


}

ログキャットは

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)
4

2 に答える 2

3

原因: java.lang.SecurityException: 許可が拒否されました (INTERNET 許可がありませんか?)

これをマニフェスト ファイルに追加します

<uses-permission android:name="android.permission.INTERNET"/>
于 2013-09-25T06:20:10.293 に答える
1

manifest.xml ファイルに Internet のパーミッションを追加する

<uses-permission android:name="android.permission.INTERNET"/>
于 2013-09-25T06:20:59.850 に答える