线程“main”中的异常java.lang.RuntimeException:Stub

时间:2012-02-09 15:17:40

标签: java android apache exception httpclient

嘿大家我得到这个奇怪的错误,我无法弄清楚为什么?

package com.androidbook.services.httpget;

import java.io.BufferedReader; import java.io.IOException;
import java.io.InputStreamReader;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;

import android.app.Activity;
import android.os.Bundle;

public class HttpGetDemo extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        BufferedReader in = null;
        try {
            HttpClient client = new DefaultHttpClient();
            HttpGet request = new HttpGet("http://code.google.com/android/");
            HttpResponse response = client.execute(request);
            in = new BufferedReader(
                    new InputStreamReader(
                        response.getEntity().getContent()));

            StringBuffer sb = new StringBuffer("");
            String line = "";
            String NL = System.getProperty("line.separator");
            while ((line = in.readLine()) != null) {
                sb.append(line + NL);
            }
            in.close();

            String page = sb.toString();
            System.out.println(page);
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();         } finally {
            if (in != null) {
                try {
                    in.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }
}

,错误就是这个

Exception in thread "main" java.lang.RuntimeException: Stub!
    at org.apache.http.impl.client.AbstractHttpClient.<init>(AbstractHttpClient.java:5)
    at org.apache.http.impl.client.DefaultHttpClient.<init>(DefaultHttpClient.java:7)
    at ClientWithResponseHandler.main(ClientWithResponseHandler.java:15)`

2 个答案:

答案 0 :(得分:8)

你在这里有android SDK导入。您是否有机会尝试从您的电脑上运行它(例如,从标准的Java项目中运行)?

此错误意味着您无权访问您尝试使用的实际方法或对象,但只能访问存根 - 一种方法,它只会抛出您看到的此异常。

确保您在模拟器(或Android设备)上运行您的Android项目,并且您不在Android项目中从Android设备上运行任何东西。

答案 1 :(得分:0)

你得到的是因为Android包中的apache类与JVM中的apache类不同。向常规apache类添加依赖项,如果使用maven,请确保在测试平台的android平台之前加载这些依赖项(有点与jUnit 4相同)。之后,您将能够在JVM中测试包含apache HTTP方法的类,但考虑到JVM不会对服务器进行任何调用,因此这仅用于测试您的所有其他部分。类。