2017-09-07 28 views
2

署名付きAPKを生成したいと思い、「com.squareup.okhttp3:okhttp:3.8.1」をコンパイルしました。
しかし、問題が発生しました。それは "okhttp"問題のように見えます。 解決方法がわかりません。私は多くの情報を研究していますが、これについての情報はめったにないようです。署名付きAPKを生成すると、問題が発生しました。

メッセージ:

Information:Gradle tasks [:app:assembleFreeRelease] 
Warning:okhttp3.Address: can't find referenced class javax.annotation.Nullable 
Warning:okhttp3.Authenticator: can't find referenced class javax.annotation.Nullable 
Warning:okhttp3.Cache: can't find referenced class javax.annotation.Nullable 
Warning:okhttp3.Cache$2: can't find referenced class javax.annotation.Nullable 
Warning:okhttp3.Cache$CacheResponseBody: can't find referenced class javax.annotation.Nullable 
Warning:okhttp3.Cache$Entry: can't find referenced class javax.annotation.Nullable 
Warning:okhttp3.CacheControl: can't find referenced class javax.annotation.Nullable 
Warning:okhttp3.CertificatePinner: can't find referenced class javax.annotation.Nullable 
Warning:okhttp3.Challenge: can't find referenced class javax.annotation.Nullable 
Warning:okhttp3.Connection: can't find referenced class javax.annotation.Nullable 
Warning:okhttp3.ConnectionPool: can't find referenced class javax.annotation.Nullable 
Warning:okhttp3.ConnectionSpec: can't find referenced class javax.annotation.Nullable 
Warning:okhttp3.ConnectionSpec$Builder: can't find referenced class javax.annotation.Nullable 
Warning:okhttp3.Cookie: can't find referenced class javax.annotation.Nullable 
Warning:okhttp3.Dispatcher: can't find referenced class javax.annotation.Nullable 
Warning:okhttp3.FormBody: can't find referenced class javax.annotation.Nullable 
Warning:okhttp3.Handshake: can't find referenced class javax.annotation.Nullable 
Warning:okhttp3.Headers: can't find referenced class javax.annotation.Nullable 
Warning:okhttp3.HttpUrl: can't find referenced class javax.annotation.Nullable 
Warning:okhttp3.HttpUrl$Builder: can't find referenced class javax.annotation.Nullable 
Warning:okhttp3.Interceptor$Chain: can't find referenced class javax.annotation.Nullable 
Warning:okhttp3.MediaType: can't find referenced class javax.annotation.Nullable 
Warning:okhttp3.MultipartBody: can't find referenced class javax.annotation.Nullable 
Warning:okhttp3.MultipartBody$Builder: can't find referenced class javax.annotation.Nullable 
Warning:okhttp3.MultipartBody$Part: can't find referenced class javax.annotation.Nullable 
Warning:okhttp3.OkHttpClient: can't find referenced class javax.annotation.Nullable 
Warning:okhttp3.OkHttpClient$Builder: can't find referenced class javax.annotation.Nullable 
Warning:okhttp3.Request: can't find referenced class javax.annotation.Nullable 
Warning:okhttp3.Request$Builder: can't find referenced class javax.annotation.Nullable 
Warning:okhttp3.RequestBody: can't find referenced class javax.annotation.Nullable 
Warning:okhttp3.RequestBody$1: can't find referenced class javax.annotation.Nullable 
Warning:okhttp3.RequestBody$2: can't find referenced class javax.annotation.Nullable 
Warning:okhttp3.RequestBody$3: can't find referenced class javax.annotation.Nullable 
Warning:okhttp3.Response: can't find referenced class javax.annotation.Nullable 
Warning:okhttp3.Response$Builder: can't find referenced class javax.annotation.Nullable 
Warning:okhttp3.ResponseBody: can't find referenced class javax.annotation.Nullable 
Warning:okhttp3.ResponseBody$1: can't find referenced class javax.annotation.Nullable 
Warning:okhttp3.Route: can't find referenced class javax.annotation.Nullable 
Warning:okhttp3.WebSocket: can't find referenced class javax.annotation.Nullable 
Warning:okhttp3.internal.cache.CacheStrategy: can't find referenced class javax.annotation.Nullable 
Warning:okhttp3.internal.cache.DiskLruCache: can't find referenced class javax.annotation.Nullable 
Warning:okhttp3.internal.cache.DiskLruCache$Snapshot: can't find referenced class javax.annotation.Nullable 
Warning:okhttp3.internal.connection.RealConnection: can't find referenced class javax.annotation.Nullable 
Warning:okhttp3.package-info: can't find referenced class javax.annotation.ParametersAreNonnullByDefault 
Warning:okio.AsyncTimeout: can't find referenced class javax.annotation.Nullable 
Warning:okio.Buffer: can't find referenced class javax.annotation.Nullable 
Warning:okio.BufferedSource: can't find referenced class javax.annotation.Nullable 
Warning:okio.ByteString: can't find referenced class javax.annotation.Nullable 
Warning:okio.DeflaterSink: can't find referenced class org.codehaus.mojo.animal_sniffer.IgnoreJRERequirement 
Warning:okio.HashingSink: can't find referenced class javax.annotation.Nullable 
Warning:okio.Okio: can't find referenced class org.codehaus.mojo.animal_sniffer.IgnoreJRERequirement 
Warning:okio.Okio$4: can't find referenced class javax.annotation.Nullable 
Warning:okio.RealBufferedSource: can't find referenced class javax.annotation.Nullable 
Warning:okio.Segment: can't find referenced class javax.annotation.Nullable 
Warning:okio.SegmentPool: can't find referenced class javax.annotation.Nullable 
Warning:okio.package-info: can't find referenced class javax.annotation.ParametersAreNonnullByDefault 
Warning:there were 169 unresolved references to classes or interfaces. 
Warning:Exception while processing task java.io.IOException: Please correct the above warnings first. 
Error:Execution failed for task ':app:transformClassesAndResourcesWithProguardForFreeRelease'. Job failed, see logs for details 
Information:BUILD FAILED 
Information:Total time: 9.693 secs 
Information:1 error 
Information:58 warnings 
Information:See complete output in console 

どのように私はこの問題を解決できますか?

+0

check gradle console logs – Rahul

+0

すべて削除プロジェクトからフォルダを作成し、署名を生成してみます。 –

答えて

0

あなたはProGuardのファイルにこれらの行を追加する必要があります

-dontwarn okio.** 
-dontwarn javax.annotation.Nullable 
-dontwarn javax.annotation.ParametersAreNonnullByDefault 
4

それはProGuardのルールを適用しているので、minifyEnabledがあなたのbuild.gradle でtrueに設定されているように見えます。あなたは、あなたのbuild.gradleファイルをチェックし、パラメータminifyEnabledはあなたのコードを難読化しないために、falseに設定されていることを確認し、あなたのコードを難読化していることを

-dontwarn okio.** 
-dontwarn com.squareup.okhttp3.** 
-keep class com.squareup.okhttp3.** { *; } 
-keep interface com.squareup.okhttp3.** { *; } 
-dontwarn javax.annotation.Nullable 
-dontwarn javax.annotation.ParametersAreNonnullByDefault 
+0

私はあなたのコードを私のproguard-rules.proに追加し、成功は私の質問を解決する、ありがとう。 – BillyLu

+0

うれしい私は助けることができます。 @ shmakovaの答えを受け入れてください:) –

+0

@BillyLuこの回答または他の回答があなたを助けた場合は、質問の左側にある灰色のチェックマークをチェックして緑に変えて答えとして受け入れる必要があります。 –

0

可能なあなたのproguard-rules.proファイルにこのルールを追加する必要があります

が、それは次のようになります。

release { 
      minifyEnabled false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
... 
     } 

コンパイルをし、問題が解決されているかどうか確認して、あなたは、Androidのコードの難読化についてもっと知りたい場合はコメント。

関連する問題