2016-09-17 15 views
32

Tôi đang sử dụng thư viện Retrofit2.NoClassDefFoundError: Độ phân giải không thành công: Lokhttp3/internal/Platform

Tôi đã cố gắng để cập nhật phiên bản mới nhất: Retrofit2, Gson, Rxjava, OKHttp, HttpLoggingInterceptor ... trong build.gradle tập tin

build.grade trong ứng dụng

dependencies { 
compile fileTree(dir: 'libs', include: ['*.jar']) 
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2',   { 
    exclude group: 'com.android.support', module: 'support-annotations' 
}) 

// Default - Android Component 
testCompile 'junit:junit:4.12' 
compile 'com.android.support:design:24.2.1' 
compile 'com.android.support:appcompat-v7:24.2.1' 

// Retrofit2 + Gson 
compile 'com.squareup.retrofit2:retrofit:2.1.0' 
compile 'com.google.code.gson:gson:2.6.2' 
compile 'com.squareup.retrofit2:converter-gson:2.1.0' 
compile 'com.squareup.retrofit2:adapter-rxjava:2.1.0' 
compile 'com.squareup.okhttp3:logging-interceptor:3.3.0' 
compile 'com.squareup.okhttp3:okhttp:3.4.1' 

// RxJva 
compile 'io.reactivex:rxandroid:1.2.0' 
compile 'io.reactivex:rxjava:1.1.4' 
} 

Nhưng tôi đã nhận lỗi

> Caused by: java.lang.NoClassDefFoundError: Failed resolution of: Lokhttp3/internal/Platform; 
at okhttp3.logging.HttpLoggingInterceptor$Logger$1.log(HttpLoggingInterceptor.java:112) 
at okhttp3.logging.HttpLoggingInterceptor.intercept(HttpLoggingInterceptor.java:160) 
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92) 
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:67) 
at internal.NetworkModule$1.intercept(NetworkModule.java:150) 

ở bên dưới mã

Interceptor provideInterceptor(final Context context, final PreferenceStore preferenceStore) { 
    Interceptor headerAuthorizationInterceptor = new Interceptor() { 
     @Override 
     public okhttp3.Response intercept(Interceptor.Chain chain) throws IOException { 
      // Get Android ID 
      String android_id = Settings.Secure.getString(context.getContentResolver(), 
        Settings.Secure.ANDROID_ID); 

      // Get Application Version 
      String appVersion = ""; 
      try { 
       PackageInfo packageInfo = context.getPackageManager().getPackageInfo(context.getPackageName(), 0); 
       appVersion = packageInfo.versionName; 
      } catch (PackageManager.NameNotFoundException e) { 
       Timber.e("Cannot get app version"); 
      } 

      /** 
      * Add header with following attributes as agree with Web Server 
      * - Token 
      * - "Android" 
      * - Release version 
      * - Model 
      * - App version 
      * - Android ID 
      */ 
      String token = preferenceStore.getAuthToken(); 

      Timber.i("X-Asukabu-Token: %s", token); 

      // Add header to request 
      Request request = chain.request(); 
      if (token != null) 
       request.headers().newBuilder() 
         .add("X-Asukabu-Token", token) 
         .add("X-Asukabu-Client-OS", "Android") 
         .add("X-Asukabu-Client-OS-Version", Build.VERSION.RELEASE) 
         .add("X-Asukabu-Client-Device", Build.MODEL) 
         .add("X-Asukabu-Client-App-Version", appVersion) 
         .add("X-Asukabu-Client-Device-ID", android_id) 
         .add("Accept","*/*") 
         .build(); 
      else 
       request.headers().newBuilder() 
         .add("X-Asukabu-Client-OS", "Android") 
         .add("X-Asukabu-Client-OS-Version", Build.VERSION.RELEASE) 
         .add("X-Asukabu-Client-Device", Build.MODEL) 
         .add("X-Asukabu-Client-App-Version", appVersion) 
         .add("X-Asukabu-Client-Device-ID", android_id) 
         .add("Accept","*/*") 
         .build(); 

      // ERROR IN THIS LINE : LINE 150 
      return chain.proceed(request); 
     } 
    }; 

    return headerAuthorizationInterceptor; 
} 

build.gradle trong dự án:

buildscript { 
repositories { 
    jcenter() 
} 
dependencies { 
    classpath 'com.android.tools.build:gradle:2.2.0-rc2' 

    // Dagger 2 
    classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8' 

    // NOTE: Do not place your application dependencies here; they belong 
    // in the individual module build.gradle files 
} 
} 

Những người biết lý do tại sao tôi đã nhận lỗi này?

Xin vui lòng cho tôi làm thế nào để sửa chữa nó,

Cảm ơn bạn,

Trả lời

87

Tôi đoán, vấn đề là ở đây:

compile 'com.squareup.okhttp3:logging-interceptor:3.3.0' 
compile 'com.squareup.okhttp3:okhttp:3.4.1' 

Cố gắng làm cho điều đó:

compile 'com.squareup.okhttp3:logging-interceptor:3.4.1' 
compile 'com.squareup.okhttp3:okhttp:3.4.1' 
+5

Just thêm cùng một phiên bản trong cả hai thư viện. –

+0

Nó không làm việc cho tôi! Tôi không có 'compile 'com.squareup.okhttp3: okhttp: 3.4.1'' –

+5

Có thể, bạn có thư viện okhttp bên trong một thư viện khác. Có thể, trang bị thêm –

Các vấn đề liên quan