quand je suis en train minifiyEnabled à true dans ma toute variante (debug ou libération), il me donne ci-dessous une erreur -"minifyEnabled true" me pose problème, pourquoi?
Warning:retrofit.appengine.UrlFetchClient: can't find referenced class com.google.appengine.api.urlfetch.HTTPRequest
Warning:retrofit.appengine.UrlFetchClient: can't find referenced class com.google.appengine.api.urlfetch.HTTPHeader
Warning:library class android.webkit.WebView depends on program class android.net.http.SslCertificate
Warning:library class android.webkit.WebViewClient depends on program class android.net.http.SslError
Warning:library class org.apache.http.conn.ssl.SSLSocketFactory depends on program class org.apache.http.conn.scheme.HostNameResolver
Warning:library class org.apache.http.conn.ssl.SSLSocketFactory depends on program class org.apache.http.params.HttpParams
Warning:library class org.apache.http.params.HttpConnectionParams depends on program class org.apache.http.params.HttpParams
Warning:there were 176 unresolved references to classes or interfaces.
Warning:there were 23 instances of library classes depending on program classes.
Warning:there were 6 unresolved references to program class members.
Warning:Exception while processing task java.io.IOException: Please correct the above warnings first.
Error:Execution failed for task ':app:transformClassesAndResourcesWithProguardForProductionDebug'.
> Job failed, see logs for details
Il fonctionne bien dans l'émulateur ou un appareil si son Lolipop ou plus.
Mon problème a été résolu si je désactivais ou rendait minifyEnabled à false, mais je ne le souhaite pas vraiment.
Mon outil gradle est build: gradle: 2.3.0'
Et multiDexEnabled vrai
Remarque - dans mon proguard-rules.pro Je ne suis pas en possession de tout classe ou un attribut fichier.
Veuillez supprimer tous les avertissements en premier comme suggéré dans les journaux – Pankaj
Je pense que vous devez configurer la règle proguard pour la mise à niveau. – darwin
Le retrofit utilise la fonction de réflexion de Java, il a donc besoin de certains noms et attributs pour rester identiques à ceux de la source. Vous devez configurer proguard pour ignorer ceux qui s'obscurcissent. Cela signifie évidemment que certaines parties de votre code ne seront pas obscurcies, donc vous devriez plutôt faire attention aux parties qui sont définies comme ça, et garder juste une partie minimale du code (principalement des classes vides contenant des valeurs avec get/set (ou juste champs publics)) et déplacez les détails d'implémentation restants dans des classes pouvant être masquées. Même le code obfusqué est encore bien lisible pour un bon codeur, ne dérange pas beaucoup. – Ped7g