解决方案 »

  1.   

    是 HttpClients.createDefault();  这个有重复? apache httpClient ?
      

  2.   

     是apache的,
    Runnable runnable = new Runnable() {
    @Override
    public void run() {
    CloseableHttpClient client = HttpClients.createDefault(); HttpPost httpPost = new HttpPost(loginUrl);

    }
    new Thread(runnable).start();
    main方法public static void main(String[] args) {
    cookiesync();
    }没有问题,
    可是在acitivity里面
    @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    cookiesync();
    }
    就报错
    07-30 16:36:31.206: E/AndroidRuntime(13893): FATAL EXCEPTION: Thread-804
    07-30 16:36:31.206: E/AndroidRuntime(13893): java.lang.NoSuchFieldError: org.apache.http.message.BasicLineFormatter.INSTANCE
    07-30 16:36:31.206: E/AndroidRuntime(13893):  at org.apache.http.impl.io.DefaultHttpRequestWriterFactory.<init>(DefaultHttpRequestWriterFactory.java:52)
    07-30 16:36:31.206: E/AndroidRuntime(13893):  at org.apache.http.impl.io.DefaultHttpRequestWriterFactory.<init>(DefaultHttpRequestWriterFactory.java:56)
    07-30 16:36:31.206: E/AndroidRuntime(13893):  at org.apache.http.impl.io.DefaultHttpRequestWriterFactory.<clinit>(DefaultHttpRequestWriterFactory.java:46)
    07-30 16:36:31.206: E/AndroidRuntime(13893):  at org.apache.http.impl.conn.ManagedHttpClientConnectionFactory.<init>(ManagedHttpClientConnectionFactory.java:72)
    07-30 16:36:31.206: E/AndroidRuntime(13893):  at org.apache.http.impl.conn.ManagedHttpClientConnectionFactory.<init>(ManagedHttpClientConnectionFactory.java:84)
    07-30 16:36:31.206: E/AndroidRuntime(13893):  at org.apache.http.impl.conn.ManagedHttpClientConnectionFactory.<clinit>(ManagedHttpClientConnectionFactory.java:59)
    07-30 16:36:31.206: E/AndroidRuntime(13893):  at org.apache.http.impl.conn.PoolingHttpClientConnectionManager$InternalConnectionFactory.<init>(PoolingHttpClientConnectionManager.java:487)
    07-30 16:36:31.206: E/AndroidRuntime(13893):  at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.<init>(PoolingHttpClientConnectionManager.java:147)
    07-30 16:36:31.206: E/AndroidRuntime(13893):  at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.<init>(PoolingHttpClientConnectionManager.java:136)
    07-30 16:36:31.206: E/AndroidRuntime(13893):  at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.<init>(PoolingHttpClientConnectionManager.java:112)
    07-30 16:36:31.206: E/AndroidRuntime(13893):  at org.apache.http.impl.client.HttpClientBuilder.build(HttpClientBuilder.java:710)
    07-30 16:36:31.206: E/AndroidRuntime(13893):  at org.apache.http.impl.client.HttpClients.createDefault(HttpClients.java:58)
    07-30 16:36:31.206: E/AndroidRuntime(13893):  at com.example.volley2.MainActivity$1.run(MainActivity.java:59)
    07-30 16:36:31.206: E/AndroidRuntime(13893):  at java.lang.Thread.run(Thread.java:838)
    怎么回事呢
      

  3.   

    你用的是copy 一个 apache http的jar包 还是android自带的?
     你最好用apache http 新版本的jar包 http://hc.apache.org/downloads.cgi 4.0以上的
      

  4.   

    我遇到了同样的问题,也在查...网上有说Android4.0以上,如果在主线程里访问网络数据就会报错,建议将这些操作放到子线程里面去。一块试试吧
      

  5.   

    我用的也是apache官网上的http://hc.apache.org/downloads.cgi,httpcomponents-client-4.3.4-bin.zip,还是不行,问题和http://stackoverflow.com/questions/19412558/fatalexception-using-httpclient-in-asynctask-with-android这个很相似,但是我就是没明白Project-> config build path-> select lib to export.在哪里,没明白,
      

  6.   

    把jar放到libs里面应该就可以了。然后在 Order and Export里面把勾上移到最上面 。试试。
      

  7.   

    我以前都用 DefaultHttpClient client = new DefaultHttpClient();  用这个试试吧,没遇到这个问题。
      

  8.   

    的确换成DefaultHttpClient就可以了,没有使用httpclient4.3那个组件,在android上不会用CloseableHttpClient ,不过现在用DefaultHttpClient能登录获取cookie,同步也就行了