實例我對着下面的錯誤錯誤OkHttp Android中
java.lang.NoClassDefFoundError: okhttp3.internal.tls.OkHostnameVerifier
當我想開發使用OkHttpClient數據庫的連接。
我在gradle中包含了下列依賴項: compile 'com.squareup.okhttp3:okhttp:3.2.0'
實例我對着下面的錯誤錯誤OkHttp Android中
java.lang.NoClassDefFoundError: okhttp3.internal.tls.OkHostnameVerifier
當我想開發使用OkHttpClient數據庫的連接。
我在gradle中包含了下列依賴項: compile 'com.squareup.okhttp3:okhttp:3.2.0'
對於OkHttp
圖書館管理員的工作,你必須包括你的build.gradle
文件這兩個依賴:
compile 'com.squareup.okhttp3:okhttp:3.3.1'
compile 'com.squareup.okio:okio:1.8.0'
或者,您也可以下載OkHttp jar和的Okio jar,並把那些在你的libs
文件夾。請致電OkHttp page和Okio page。
我沒有足夠的知名度點擊發表評論。所以,我把它寫出來作爲答案。其他答案不適合我。我的build.gradle中已經有okhttp3和okio依賴關係。 這不是一個確切的答案,但分析問題,因爲即使我有完全相同的問題。所以,我試着調試一下。
堆棧跟蹤:
java.lang.NoClassDefFoundError: okhttp3.internal.tls.OkHostnameVerifier
at okhttp3.OkHttpClient$Builder.<init>(OkHttpClient.java:364)
at okhttp3.OkHttpClient.<init>(OkHttpClient.java:151)
所以,我反編譯我的APK,發現OkHostnameVerifier類是不存在於我的APK,即使它存在於source of Okhttp3。因此,可能是gradle會刪除這些文件,將它們視爲未使用的代碼,誤報。
但是,如果我在build.gradle中啓用了minifyEnabled,它將修復該問題並保留APK中的所有類文件。 所以,我認爲這是一個proguard中的錯誤。
也許這是一個proguard問題? – Mauker
@Mauker權利,proguard問題,而不是gradle。感謝您的糾正! –
發佈您的'build.gradle'和類使用OkHttp。 –
你還需要添加編譯'com.squareup.okio:okio:1.6.0' – Dilip