2015-08-31 1 views
-1

Я создал одно демо, основанное на вызове mashape api. Но я получаю сообщение об ошибке. Я попробовал много предложений, но не получил никакого решения.java.lang.NoClassDefFoundError: org.apache.http.impl.conn.PoolingHttpClientConnectionManager

Java код:

public class MainActivity extends ActionBarActivity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     new CallMashapeAsync().execute(); 


    } 

    private class CallMashapeAsync extends AsyncTask<String, Integer, HttpResponse<JsonNode>> { 

     protected HttpResponse<JsonNode> doInBackground(String... msg) { 

      HttpResponse<JsonNode> request = null; 
      try { 
       request = Unirest.get("https://indianpost.p.mashape.com/getOffices.php?pincode=394101") 
         .header("X-Mashape-Key", "My API") 
         .header("Accept", "application/json") 
         .asJson(); 
      } catch (UnirestException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } 

      return request; 
     } 

     protected void onProgressUpdate(Integer...integers) { 
     } 

     protected void onPostExecute(HttpResponse<JsonNode> response) { 
      String answer = response.getBody().toString(); 
      TextView txtView = (TextView) findViewById(R.id.textview1); 
      txtView.setText(answer); 
     } 
    } 
} 

build.gradle

apply plugin: 'com.android.application' 

android { 
    compileSdkVersion 21 
    buildToolsVersion "22.0.1" 

    defaultConfig { 
     applicationId "com.example.hungama3.myapplication" 
     minSdkVersion 16 
     targetSdkVersion 21 
     versionCode 1 
     versionName "1.0" 
    } 
    buildTypes { 
     release { 
      minifyEnabled false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
    } 
} 

dependencies { 
    compile fileTree(dir: 'libs', include: ['*.jar']) 
    compile 'com.android.support:appcompat-v7:22.0.0' 
    compile files('libs/gson-2.2.4.jar') 
    compile files('libs/httpclient-4.3-beta1.jar') 
    compile files('libs/mashape-java-client-2.0.10.jar') 
    compile files('libs/unirest-java-1.3.0.jar') 
    compile files('libs/org.apache.commons.logging-1.1.1.jar') 
} 

Ошибка:

java.lang.RuntimeException: An error occured while executing doInBackground() 
      at android.os.AsyncTask$3.done(AsyncTask.java:300) 
      at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:355) 
      at java.util.concurrent.FutureTask.setException(FutureTask.java:222) 
      at java.util.concurrent.FutureTask.run(FutureTask.java:242) 
      at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231) 
      at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112) 
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587) 
      at java.lang.Thread.run(Thread.java:841) 
    Caused by: java.lang.NoClassDefFoundError: org.apache.http.impl.conn.PoolingHttpClientConnectionManager 
      at org.apache.http.impl.client.HttpClientBuilder.build(HttpClientBuilder.java:459) 
      at com.mashape.unirest.http.options.Options.refresh(Options.java:41) 
      at com.mashape.unirest.http.options.Options.<clinit>(Options.java:27) 
      at com.mashape.unirest.http.HttpClientHelper.prepareRequest(HttpClientHelper.java:138) 
      at com.mashape.unirest.http.HttpClientHelper.request(HttpClientHelper.java:121) 
      at com.mashape.unirest.request.BaseRequest.asJson(BaseRequest.java:64) 
      at com.example.hungama3.myapplication.MainActivity$CallMashapeAsync.doInBackground(MainActivity.java:33) 
      at com.example.hungama3.myapplication.MainActivity$CallMashapeAsync.doInBackground(MainActivity.java:27) 
      at android.os.AsyncTask$2.call(AsyncTask.java:288) 
      at java.util.concurrent.FutureTask.run(FutureTask.java:237) 
            at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231) 
            at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112) 
            at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587) 
            at java.lang.Thread.run(Thread.java:841) 

Я пробовал много Я.А. r для библиотеки http apache, но не получая никакого решения. Если у кого-нибудь есть предложение, то скажите мне.

Ошибка линии фокуса 37, которая указывает «запрос» в try catch.

ответ

1

Редактировать снова: библиотека

После второй мысли, на самом деле андроид содержит HttpClient уже (до Android 6.0), то в том числе и сами, вы могли бы создать конфликт. Попробуйте удалить банку и попробуйте.

удалить строку

compile files('libs/httpclient-4.3-beta1.jar') 

Вы, возможно, потребуется удалить это также

compile files('libs/org.apache.commons.logging-1.1.1.jar') 
+0

Я сменил строку compile 'org.apache.httpcomponents: httpclient: 4.3.6', но при этом появилась такая же ошибка .... – kishan

+0

проверить мое редактирование, возможно, потому что у андроида есть свой собственный httpclient уже –

+0

любые изменения в build.gradle файл? если затем объяснить изменения .. – kishan

0

Не нужно добавить HttpComponents как зависимость? Не уверен, что вам нужно включить HttpClient, как вы, андроид уже включает его.

+0

Попробуйте полное решение dereks, я согласен с ним, что вам не нужен httpclient – vman

0

Для андроида Удалить все HTTPClient и httpcore зависимостей и добавить

compile group: 'org.apache.httpcomponents' , name: 'httpclient-android' , version: '4.3.5.1' // gradle depedencies 

в файле build.gradle. Вы избавитесь от всех проблем, поскольку у андроида уже есть библиотеки httpclient и httpcore.

Смежные вопросы