【问题标题】:I am getting this error: FATAL EXCEPTION: AsyncTask #1我收到此错误:致命异常:AsyncTask #1
【发布时间】:2017-04-18 21:22:19
【问题描述】:

这是我的代码。我收到很多错误。请帮助我,我是新手 编程java

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);


        AsyncTask<String, Object, StringBuilder> listEmpresasTask = new AsyncTask<String, Object, StringBuilder>() {
            @Override
            protected StringBuilder doInBackground(String... params) {
                StringBuilder stringBuilder = new StringBuilder();
                try {
                    URL url = new URL("http://gsweb-tiagoseibel.rhcloud.com/empresas.json"); //exemplo de conex�o
                    HttpURLConnection con = (HttpURLConnection) url.openConnection();
                    con.setRequestMethod("GET");
                    BufferedReader br = new BufferedReader(new InputStreamReader(con.getInputStream()));

                    String linha;
                    while ((linha = br.readLine()) != null) {
                        stringBuilder.append(linha);
                    }
                    br.close();
                } catch (MalformedURLException e) {
                    e.printStackTrace();

                } catch (IOException e) {
                    e.printStackTrace();
                }
                return stringBuilder;
            }

            @Override
            protected void onPostExecute(StringBuilder stringBuilder) {
                super.onPostExecute(stringBuilder);
                List<String> list = new ArrayList<String>();

                try {
                    JSONArray marcas = new JSONArray(stringBuilder.toString());
                    for (int i = 0; i < marcas.length(); i++) {
                        String marcaID = marcas.optJSONObject(i).optString("id");
                        String marcaDesc = marcas.optJSONObject(i).optString("descricao");
                        list.add(marcaID + " - " + marcaDesc);
                    }
                } catch (JSONException e) {
                    Toast.makeText(getBaseContext(), e.getMessage(), Toast.LENGTH_SHORT);
                    e.printStackTrace();
                }
                Toast.makeText(getApplicationContext(), "Lista de Cooperativas", Toast.LENGTH_LONG).show();

                ArrayAdapter<String> ad = new ArrayAdapter<String>(getApplicationContext(), R.layout.list_item, list);
                ListView lv = (ListView) findViewById(R.id.listView);
                lv.setAdapter(ad);
            }

        };



    listEmpresasTask.execute();

}


    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.menu_main, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();

        //noinspection SimplifiableIfStatement
        if (id == R.id.action_settings) {
            return true;
        }

        return super.onOptionsItemSelected(item);
    }
}

错误:

12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/AndroidRuntime:致命异常:AsyncTask #1 12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/AndroidRuntime: 进程:com.example.anderson.myapplication,PID:2114 12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/AndroidRuntime: java.lang.RuntimeException: An error occurred while 执行 doInBackground() 12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/AndroidRuntime:在 android.os.AsyncTask$3.done(AsyncTask.java:309) 12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/AndroidRuntime:在 java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:354) 12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/Android运行时:在 java.util.concurrent.FutureTask.setException(FutureTask.java:223) 12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/Android运行时:在 java.util.concurrent.FutureTask.run(FutureTask.java:242) 12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/Android运行时:在 android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:234) 12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/Android运行时:在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113) 12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/Android运行时:在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588) 12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/AndroidRuntime:在 java.lang.Thread.run(Thread.java:818) 12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/AndroidRuntime:引起:java.lang.SecurityException:权限 拒绝(缺少 INTERNET 权限?) 12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/AndroidRuntime:在 java.net.InetAddress.lookupHostByName(InetAddress.java:464) 12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/Android运行时:在 java.net.InetAddress.getAllByNameImpl(InetAddress.java:252) 12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/Android运行时:在 java.net.InetAddress.getAllByName(InetAddress.java:215) 12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/Android运行时:在 com.android.okhttp.internal.Network$1.resolveInetAddresses(Network.java:29) 12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/Android运行时:在 com.android.okhttp.internal.http.RouteSelector.resetNextInetSocketAddress(RouteSelector.java:188) 12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/Android运行时:在 com.android.okhttp.internal.http.RouteSelector.nextProxy(RouteSelector.java:157) 12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/Android运行时:在 com.android.okhttp.internal.http.RouteSelector.next(RouteSelector.java:100) 12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/Android运行时:在 com.android.okhttp.internal.http.HttpEngine.createNextConnection(HttpEngine.java:357) 12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/Android运行时:在 com.android.okhttp.internal.http.HttpEngine.nextConnection(HttpEngine.java:340) 12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/Android运行时:在 com.android.okhttp.internal.http.HttpEngine.connect(HttpEngine.java:330) 12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/Android运行时:在 com.android.okhttp.internal.http.HttpEngine.sendRequest(HttpEngine.java:248) 12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/Android运行时:在 com.android.okhttp.internal.huc.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:433) 12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/Android运行时:在 com.android.okhttp.internal.huc.HttpURLConnectionImpl.getResponse(HttpURLConnectionImpl.java:384) 12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/Android运行时:在 com.android.okhttp.internal.huc.HttpURLConnectionImpl.getInputStream(HttpURLConnectionImpl.java:231) 12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/Android运行时:在 com.example.anderson.myapplication.MainActivity$1.doInBackground(MainActivity.java:48) 12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/Android运行时:在 com.example.anderson.myapplication.MainActivity$1.doInBackground(MainActivity.java:40) 12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/Android运行时:在 android.os.AsyncTask$2.call(AsyncTask.java:295) 12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/AndroidRuntime:在 java.util.concurrent.FutureTask.run(FutureTask.java:237) 12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/Android运行时:在 android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:234) 12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/Android运行时:在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113) 12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/Android运行时:在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588) 12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/AndroidRuntime:在 java.lang.Thread.run(Thread.java:818) 12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/AndroidRuntime:引起:android.system.GaiException: android_getaddrinfo 失败:EAI_NODATA(没有关联的地址 主机名)12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/AndroidRuntime:在 libcore.io.Posix.android_getaddrinfo(本机方法)12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/AndroidRuntime:在 libcore.io.ForwardingOs.android_getaddrinfo(ForwardingOs.java:55) 12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/Android运行时:在 java.net.InetAddress.lookupHostByName(InetAddress.java:451) 12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/Android运行时:在 java.net.InetAddress.getAllByNameImpl(InetAddress.java:252) 12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/Android运行时:在 java.net.InetAddress.getAllByName(InetAddress.java:215) 12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/Android运行时:在 com.android.okhttp.internal.Network$1.resolveInetAddresses(Network.java:29) 12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/Android运行时:在 com.android.okhttp.internal.http.RouteSelector.resetNextInetSocketAddress(RouteSelector.java:188) 12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/Android运行时:在 com.android.okhttp.internal.http.RouteSelector.nextProxy(RouteSelector.java:157) 12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/Android运行时:在 com.android.okhttp.internal.http.RouteSelector.next(RouteSelector.java:100) 12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/Android运行时:在 com.android.okhttp.internal.http.HttpEngine.createNextConnection(HttpEngine.java:357) 12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/Android运行时:在 com.android.okhttp.internal.http.HttpEngine.nextConnection(HttpEngine.java:340) 12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/Android运行时:在 com.android.okhttp.internal.http.HttpEngine.connect(HttpEngine.java:330) 12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/Android运行时:在 com.android.okhttp.internal.http.HttpEngine.sendRequest(HttpEngine.java:248) 12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/Android运行时:在 com.android.okhttp.internal.huc.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:433) 12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/Android运行时:在 com.android.okhttp.internal.huc.HttpURLConnectionImpl.getResponse(HttpURLConnectionImpl.java:384) 12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/Android运行时:在 com.android.okhttp.internal.huc.HttpURLConnectionImpl.getInputStream(HttpURLConnectionImpl.java:231) 12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/Android运行时:在 com.example.anderson.myapplication.MainActivity$1.doInBackground(MainActivity.java:48) 12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/Android运行时:在 com.example.anderson.myapplication.MainActivity$1.doInBackground(MainActivity.java:40) 12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/Android运行时:在 android.os.AsyncTask$2.call(AsyncTask.java:295) 12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/AndroidRuntime:在 java.util.concurrent.FutureTask.run(FutureTask.java:237) 12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/Android运行时:在 android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:234) 12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/Android运行时:在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113) 12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/Android运行时:在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588) 12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/AndroidRuntime:在 java.lang.Thread.run(Thread.java:818) 12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/AndroidRuntime:引起:android.system.ErrnoException: android_getaddrinfo 失败:EACCES(权限被拒绝)12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/AndroidRuntime: 在 libcore.io.Posix.android_getaddrinfo(Native 方法)12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/AndroidRuntime:在 libcore.io.ForwardingOs.android_getaddrinfo(ForwardingOs.java:55) 12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/Android运行时:在 java.net.InetAddress.lookupHostByName(InetAddress.java:451) 12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/Android运行时:在 java.net.InetAddress.getAllByNameImpl(InetAddress.java:252) 12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/Android运行时:在 java.net.InetAddress.getAllByName(InetAddress.java:215) 12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/Android运行时:在 com.android.okhttp.internal.Network$1.resolveInetAddresses(Network.java:29) 12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/Android运行时:在 com.android.okhttp.internal.http.RouteSelector.resetNextInetSocketAddress(RouteSelector.java:188) 12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/Android运行时:在 com.android.okhttp.internal.http.RouteSelector.nextProxy(RouteSelector.java:157) 12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/Android运行时:在 com.android.okhttp.internal.http.RouteSelector.next(RouteSelector.java:100) 12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/Android运行时:在 com.android.okhttp.internal.http.HttpEngine.createNextConnection(HttpEngine.java:357) 12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/Android运行时:在 com.android.okhttp.internal.http.HttpEngine.nextConnection(HttpEngine.java:340) 12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/Android运行时:在 com.android.okhttp.internal.http.HttpEngine.connect(HttpEngine.java:330) 12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/Android运行时:在 com.android.okhttp.internal.http.HttpEngine.sendRequest(HttpEngine.java:248) 12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/Android运行时:在 com.android.okhttp.internal.huc.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:433) 12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/Android运行时:在 com.android.okhttp.internal.huc.HttpURLConnectionImpl.getResponse(HttpURLConnectionImpl.java:384) 12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/Android运行时:在 com.android.okhttp.internal.huc.HttpURLConnectionImpl.getInputStream(HttpURLConnectionImpl.java:231) 12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/Android运行时:在 com.example.anderson.myapplication.MainActivity$1.doInBackground(MainActivity.java:48) 12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/Android运行时:在 com.example.anderson.myapplication.MainActivity$1.doInBackground(MainActivity.java:40) 12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/Android运行时:在 android.os.AsyncTask$2.call(AsyncTask.java:295) 12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/AndroidRuntime:在 java.util.concurrent.FutureTask.run(FutureTask.java:237) 12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/Android运行时:在 android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:234) 12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/Android运行时:在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113) 12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/Android运行时:在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588) 12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/AndroidRuntime:在 java.lang.Thread.run(Thread.java:818) 12-04 10:44:22.607 2114-2114/com.example.anderson.myapplication I/Choreographer:跳过了 38 帧!该应用程序可能也在做 在它的主线程上做了很多工作。 12-04 10:44:23.767 2114-2123/com.example.anderson.myapplication W/art:暂停所有 线程占用:10.982ms 12-04 10:44:24.099 2114-2114/com.example.anderson.myapplication W/art: 长监视器 所有者方法=无效的争用事件 android.os.MessageQueue.nativeWake(long) 来自 MessageQueue.java:4294967294 waiters=0 for 557ms 12-04 10:44:24.142 2114-2135/com.example.anderson.myapplication E/Surface: getSlotFromBufferLocked:未知缓冲区:0xab811e00 12-04 10:44:27.078 2114-2134/com.example.anderson.myapplication I/进程:发送 信号。 PID:2114 SIG:9

【问题讨论】:

    标签: java android-studio


    【解决方案1】:

    添加这个:

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

    到你的AndroidManifest.xml应用标签之外

    【讨论】:

      【解决方案2】:

      您需要在清单文件中添加权限。根据您粘贴的错误

      java.lang.SecurityException: Permission denied (missing INTERNET permission?) 12-04 10:44:21.900 2114-2134/com.example.anderson.myapplication E/AndroidRuntime: at 
      

      在使用互联网之前添加适当的权限。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-02-07
        • 2013-04-17
        • 2015-09-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-11-12
        相关资源
        最近更新 更多