Maintenant, de nombreuses bibliothèques requièrent comstackSdkVersion 23. Mais cette version ne contient pas apache et certaines anciennes bibliothèques utilisaient http http. Pour utiliser apache avec 23 j’ai trouvé la solution, où dit à propos d’append org.apache.http.legacy à grudle.
useLibrary 'org.apache.http.legacy'
ce travail. Mais pas avec proguard. J’utilise proguard pour minify apk size, je n’utilise pas l’obscurcissement, seulement minifyEnabled true
dans ‘proguard-rules.txt’ Je n’ai qu’une chaîne:
-dontobfuscate
Et quand je construis apk AndroidStudio affiche des erreurs, car certaines bibliothèques utilisaient Apache. J’ai essayé d’append des classes de maintien à proguard mais cela ne fonctionne pas. chaque fois que j’ai des erreurs sur Apache.
-keep class org.apache.http.** { *; } -dontwarn org.apache.http.** -keep class android.net.http.** { *; } -dontwarn android.net.http.** -keep class android.support.v7.** { *; } -keep class android.support.v4.** { *; }
Remarque: lorsque proguard est désactivé ( minifyEnabled défini sur false ), alors apk build et succès professionnel. Ceci est une erreur de la console de studio Android:
:app:proguardRelease Warning: com.vk.sdk.api.httpClient.VKHttpOperation: can't find referenced method 'org.apache.http.HttpResponse execute(org.apache.http.client.methods.HttpUriRequest)' in program class com.vk.sdk.api.httpClient.VKHttpClient Warning: org.acra.ErrorReporter: can't find referenced method 'void setLatestEventInfo(android.content.Context,java.lang.CharSequence,java.lang.CharSequence,android.app.PendingIntent)' in library class android.app.Notification
et plus
Warning: com.mopub.mobileads.VastVideoViewController: can't find referenced class org.apache.http.client.methods.HttpUriRequest Warning: com.mopub.mobileads.VastVideoViewController: can't find referenced class org.apache.http.client.methods.HttpGet Warning: com.mopub.mobileads.factories.HttpClientFactory: can't find referenced class org.apache.http.params.BasicHttpParams Warning: com.mopub.mobileads.factories.HttpClientFactory: can't find referenced class org.apache.http.params.BasicHttpParams Warning: com.mopub.mobileads.factories.HttpClientFactory: can't find referenced class org.apache.http.impl.client.DefaultHttpClient Warning: com.mopub.mobileads.factories.HttpClientFactory: can't find referenced class org.apache.http.impl.client.DefaultHttpClient Warning: com.mopub.mobileads.factories.HttpClientFactory: can't find referenced class org.apache.http.impl.client.DefaultHttpClient Warning: com.mopub.mobileads.factories.HttpClientFactory: can't find referenced class org.apache.http.impl.client.DefaultHttpClient Warning: com.mopub.mobileads.factories.HttpClientFactory: can't find referenced class org.apache.http.impl.client.DefaultHttpClient Warning: com.mopub.mobileads.util.HttpClients: can't find referenced class org.apache.http.client.HttpClient Warning: com.mopub.mobileads.util.HttpClients: can't find referenced class org.apache.http.client.HttpClient Warning: com.mopub.mobileads.util.HttpClients$1: can't find referenced class org.apache.http.client.HttpClient Warning: com.mopub.mobileads.util.HttpClients$1: can't find referenced class org.apache.http.client.HttpClient Warning: com.mopub.mobileads.util.HttpClients$1: can't find referenced class org.apache.http.conn.ClientConnectionManager Warning: com.mopub.mobileads.util.HttpClients$1: can't find referenced class org.apache.http.conn.ClientConnectionManager Warning: com.mopub.mobileads.util.HttpClients$1: can't find referenced class org.apache.http.client.HttpClient Warning: com.mopub.mobileads.util.HttpClients$1: can't find referenced class org.apache.http.client.HttpClient Warning: com.mopub.mobileads.util.vast.VastXmlManagerAggregator: can't find referenced class android.net.http.AndroidHttpClient
Je viens d’avoir le même problème, et résolu par:
mettre à jour les outils de compilation du SDK Android à 23.0. 1
mettre à jour MoPub à 3.13.0
Vous avez un problème similaire avec google-play-services_lib
. Résolu dans Eclipse en ajoutant cette ligne à proguard-project.txt:
-libraryjars "\platforms\android-23\optional\org.apache.http.legacy.jar"
Même problème avec la méthode setLatestEventInfo
, elle a été déconseillée et supprimée au niveau 23. Cette fois, il n’y a plus de setLatestEventInfo
hérité. Encore une fois, une autre ligne:
-libraryjars "\platforms\android-22\android.jar"
Avec cette référence, la première pour Apache est probablement superflue – je n’ai plus besoin que du premier, depuis la mise à jour de google-play-services_lib vers la version 8.2.98 (bien que récente, toujours des références apache).