title: Android http connecting with OkHttp Dont work
body: <p>I am trying to use OkHttp but it keep crashing. Can someone have a quick look and see if you know whats happening. Thank you.</p>
  
  <p>Log cat:</p>
  
  <pre><code>01-24 08:34:46.952: E/AndroidRuntime(31953): FATAL EXCEPTION: OkHttp Dispatcher
  01-24 08:34:46.952: E/AndroidRuntime(31953): java.lang.NoClassDefFoundError: okio.Okio
  01-24 08:34:46.952: E/AndroidRuntime(31953):    at com.squareup.okhttp.internal.http.HttpConnection.&lt;init&gt;(HttpConnection.java:87)
  01-24 08:34:46.952: E/AndroidRuntime(31953):    at com.squareup.okhttp.Connection.upgradeToTls(Connection.java:272)
  01-24 08:34:46.952: E/AndroidRuntime(31953):    at com.squareup.okhttp.Connection.connect(Connection.java:158)
  01-24 08:34:46.952: E/AndroidRuntime(31953):    at com.squareup.okhttp.Connection.connectAndSetOwner(Connection.java:174)
  01-24 08:34:46.952: E/AndroidRuntime(31953):    at com.squareup.okhttp.OkHttpClient$1.connectAndSetOwner(OkHttpClient.java:120)
  01-24 08:34:46.952: E/AndroidRuntime(31953):    at com.squareup.okhttp.internal.http.RouteSelector.next(RouteSelector.java:131)
  01-24 08:34:46.952: E/AndroidRuntime(31953):    at com.squareup.okhttp.internal.http.HttpEngine.connect(HttpEngine.java:312)
  01-24 08:34:46.952: E/AndroidRuntime(31953):    at com.squareup.okhttp.internal.http.HttpEngine.sendRequest(HttpEngine.java:235)
  01-24 08:34:46.952: E/AndroidRuntime(31953):    at com.squareup.okhttp.Call.getResponse(Call.java:262)
  01-24 08:34:46.952: E/AndroidRuntime(31953):    at com.squareup.okhttp.Call$ApplicationInterceptorChain.proceed(Call.java:219)
  01-24 08:34:46.952: E/AndroidRuntime(31953):    at com.squareup.okhttp.Call.getResponseWithInterceptorChain(Call.java:192)
  01-24 08:34:46.952: E/AndroidRuntime(31953):    at com.squareup.okhttp.Call.access$100(Call.java:34)
  01-24 08:34:46.952: E/AndroidRuntime(31953):    at com.squareup.okhttp.Call$AsyncCall.execute(Call.java:156)
  01-24 08:34:46.952: E/AndroidRuntime(31953):    at com.squareup.okhttp.internal.NamedRunnable.run(NamedRunnable.java:33)
  01-24 08:34:46.952: E/AndroidRuntime(31953):    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
  01-24 08:34:46.952: E/AndroidRuntime(31953):    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
  01-24 08:34:46.952: E/AndroidRuntime(31953):    at java.lang.Thread.run(Thread.java:841)
  </code></pre>
  
  <p>Here is the code sample I am trying to use. Its from a tutorial online (teamtreehouse.com)
  Java code:</p>
  
  <pre><code>OkHttpClient client = new OkHttpClient();
              Request request = new Request.Builder()
                      .url(forecastUrl)
                      .build();
  
              Call call = client.newCall(request);
              call.enqueue(new Callback() {
                  @Override
                  public void onFailure(Request request, IOException e) {
                      runOnUiThread(new Runnable() {
                          @Override
                          public void run() {
                              toggleRefresh();
                          }
                      });
                      alertUserAboutError();
                  }
  
                  @Override
                  public void onResponse(Response response) throws IOException {
                      runOnUiThread(new Runnable() {
                          @Override
                          public void run() {
                              toggleRefresh();
                          }
                      });
  
                      try {
                          String jsonData = response.body().string();
                          Log.v(TAG, jsonData);
                          if (response.isSuccessful()) {
                              mCurrentWeather = getCurrentDetails(jsonData);
                              runOnUiThread(new Runnable() {
                                  @Override
                                  public void run() {
                                      updateDisplay();
                                  }
                              });
                          } else {
                              alertUserAboutError();
                          }
                      }
                      catch (IOException e) {
                          Log.e(TAG, "Exception caught: ", e);
                      }
                      catch (JSONException e) {
                          Log.e(TAG, "Exception caught: ", e);
                      }
                  }
              });
  </code></pre>