NoClassDefFoundError for OkHttpClient

前端 未结 4 2077
没有蜡笔的小新
没有蜡笔的小新 2020-12-01 17:16

After adding the facebook dependency in gradle I\'m getting this runtime error:

     compile \'com.facebook.android:facebook-android-sdk:4.6.0\'
4条回答
  •  小蘑菇
    小蘑菇 (楼主)
    2020-12-01 17:27

    The latest version of Piccasso use an older version of Okhttp, you need to use a new dependency

    compile 'com.squareup.okhttp3:okhttp:3.2.0'
    compile 'com.squareup.picasso:picasso:2.5.2'    
    compile 'com.jakewharton.picasso:picasso2-okhttp3-downloader:1.0.2'
    

    Example:

    File httpCacheDirectory = new File(getCacheDir(), "picasso-cache");
    Cache cache = new Cache(httpCacheDirectory, 10 * 1024 * 1024);
    
    OkHttpClient.Builder clientBuilder = new OkHttpClient.Builder().cache(cache);
    Picasso.Builder picassoBuilder = new Picasso.Builder(getApplicationContext());
    picassoBuilder.downloader(new OkHttp3Downloader(clientBuilder.build()));
    Picasso picasso = picassoBuilder.build();
    try {
       Picasso.setSingletonInstance(picasso);
    } catch (IllegalStateException ignored) {
      Log.e(LOG_TAG, "Picasso instance already used");
    }
    

提交回复
热议问题