NoClassDefFoundError:解析失败:Lokhttp3 / internal / Platform

时间:2016-09-17 10:18:04

标签: java android retrofit2 okhttp3

我正在使用$checkbox=$_POST['keyword']; foreach($checkbox as $checkbox1) { if(isset($checkbox2)) { $checkbox2.=','.$checkbox1; } else { $checkbox2=$checkbox1; } } 库。

我已经尝试更新最新版本:Retrofit2文件中的Retrofit2,Gson,Rxjava,OKHttp,HttpLoggingInterceptor ...

应用程序中的

build.gradle

build.grade

但我收到了错误

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'
}

以下代码

 > 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)
Project中的

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

知道我为什么会收到此错误的人?

请告诉我如何修复它,

谢谢,

2 个答案:

答案 0 :(得分:102)

我猜,问题在于:

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

尝试做到:

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

答案 1 :(得分:0)

这是问题 https://github.com/square/retrofit/issues/2266

您必须输入相同的版本。 这是最新版本

implementation 'com.squareup.okhttp3:logging-interceptor:4.7.2'
implementation 'com.squareup.okhttp3:okhttp:4.7.2'