Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/219.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Http请求不';t工作java(在Android应用程序上)_Java_Android_Httprequest - Fatal编程技术网

Http请求不';t工作java(在Android应用程序上)

Http请求不';t工作java(在Android应用程序上),java,android,httprequest,Java,Android,Httprequest,现在差不多一个月了,我仍然在努力通过android应用程序发送一个简单的请求。尝试了几种方法,但都失败了。希望你们能看到我看不到的错误。应用程序启动时崩溃 下面是我最后一次尝试的代码: public class MainActivity extends Activity { Handler handler2; String result=""; @Override protected void onCreate(Bundle savedInstanceState) { super.o

现在差不多一个月了,我仍然在努力通过android应用程序发送一个简单的请求。尝试了几种方法,但都失败了。希望你们能看到我看不到的错误。应用程序启动时崩溃

下面是我最后一次尝试的代码:

public class MainActivity extends Activity {

Handler handler2;
String result="";

@Override
protected void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    MyThread mt= new MyThread();
    mt.start();
}


private class MyThread extends Thread{
    @Override
    public void run() {
        Toast.makeText(MainActivity.this,"thread created",Toast.LENGTH_LONG).show();
        URL url = null;
        try {
            url = new URL("http://www.android.com/");
            HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
            try {                   
                InputStream in = new BufferedInputStream(urlConnection.getInputStream());
                result = readStream(in);
                Toast.makeText(MainActivity.this,"success",Toast.LENGTH_LONG).show();
            } finally {
                urlConnection.disconnect();
            }
        } catch (MalformedURLException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }

        handler2.post(new Runnable() {
                @Override
                public void run() {
                    Toast.makeText(MainActivity.this,result,Toast.LENGTH_LONG).show();
                }
            });

    }
然后是logcat:

12-19 13:59:24.989 18412 18412 E   AndroidRuntime                               Process: com.system.alt, PID: 18412
12-19 13:59:24.989 18412 18412 E   AndroidRuntime                               java.lang.RuntimeException: Unable to start activity ComponentInfo{com.system.alt/com.system.alt.MainActivity}: java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.
12-19 13:59:24.989 18412 18412 E   AndroidRuntime                               at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2946)

我认为开始一个新的线程有问题。有人能帮忙吗?我被卡住了(

尝试扩展
AppCompatActivity
而不是
Activity

...
public class MainActivity extends AppCompatActivity{
...

MainActivity的第35行是什么?根据日志,这就是错误的来源。此外,我认为您不能直接从另一个线程显示toast或更新任何其他ui元素,请选中此选项,即使用async task,它为您提供了一种访问ui线程的简便方法。实际上,我刷新了构建并发现了这些错误gs.Updated.Btw,注释掉Toasts,仍然崩溃。请注意,错误消息与HTTP请求无关。事实上,Android还没有执行足够多的代码来实现这一点。如果你搜索错误消息,你会发现许多显示如何解决它的链接,包括我添加到你问题顶部的链接。