web-dev-qa-db-fra.com

com.google.Android.gms.internal.zzhu: impossible de trouver la classe référencée Android.security.NetworkSecurityPolicy

J'ai essayé de générer un apk en utilisant proguard, mais j'ai cette erreur en essayant de construire:

Warning: com.google.Android.gms.internal.zzhu: can't find referenced class Android.security.NetworkSecurityPolicy

Warning: there were 3 unresolved references to classes or interfaces.
You may need to add missing library jars or update their versions.         If your code works fine without the missing classes, you can suppress         the warnings with '-dontwarn' options.

(http://proguard.sourceforge.net/manual/troubleshooting.html#unresolvedclass)
:app:proguardRelease FAILED
Error:Execution failed for task ':app:proguardRelease'.
Java.io.IOException: Please correct the above warnings first.

Récemment, j'ai mis à niveau mes outils de SDK Android. Avant cela, ce projet ne présentait aucun problème avec proguard. J'ai trouvé ce post ( https://plus.google.com/+PaulBurke/posts/T3vmAnRP3q6 ) où Oliver Renner a écrit: 

"Donc, fondamentalement, la prochaine bibliothèque Google ne pourra pas être mise à niveau vers la dernière version. Elle semble également nécessiter compileSdk 23 pour pouvoir utiliser ProGuard sans modification (Avertissement: com.google.Android.gms.internal.zzhu: can ne trouve pas la classe référencée Android.security.NetworkSecurityPolicy) "*

J'ai mis à jour mon projet pour le compiler à l'aide du SDK 23, mais le problème n'était pas résolu.

Ci-dessous, j'ai inclus certaines parties de mon fichier build.gradle:

compileSdkVersion 23
    buildToolsVersion "23.0.0"

    defaultConfig {
        applicationId "com.sample.sample"
        minSdkVersion 16
        targetSdkVersion 23
        versionCode 1
        versionName "1.0.0"
    }

.
.
.

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.Android.support:appcompat-v7:23.0.0'
    compile 'com.google.Android.gms:play-services:+'
    compile 'com.Android.support:design:23.0.0'
    compile('com.crashlytics.sdk.Android:crashlytics:2.5.0@aar') {
        transitive = true;
    }
}
20

J'ai eu le même problème. Le message d'avertissement dit:

Si votre code fonctionne bien sans les classes manquantes, vous pouvez supprimer les avertissements avec les options '-dontwarn'.

Alors prenons sa suggestion:

-dontwarn com.google.Android.gms.internal.zzhu

Pour moi, cela a résolu le problème. Cependant, si pour une raison quelconque votre code ne fonctionne PAS correctement sans la classe, vous pouvez faire quelque chose comme ceci en plus (non testé):

-keep class com.google.Android.gms.internal.** { *; }

Notez que vous aurez besoin de la ligne -dontwarn de toute façon. Bonne chance!

24
yuval

Pour moi, il semble que cela ait été causé par la présence accidentelle de Google en incluant AdMob dans les dépendances de Play Services Analytics 8.1: https://plus.google.com/+GoogleDevelopers/posts/HsSNWEQ6H4e

Si j'exclue le module play-services-ads dans build.gradle, l'erreur ___ ne progresse pas avec Android.security.NetworkSecurityPolicy, et ma version de build s'installe et s'exécute sans aucun problème (il se bloquait auparavant au démarrage avec Java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity, alors que la construction de débogage fonctionnait correctement):

compile ('com.google.Android.gms:play-services-analytics:8.1.0') {
    exclude module: 'play-services-ads'
}

Dans les règles Proguard, vous avez également besoin de:

-dontwarn com.google.Android.gms.ads.**

Merci à cet article pour plus de détails (même s'il ne fait pas référence aux versions écrasées, mais à la taille de l'APK): https://medium.com/google-developer-experts/warning-for-google-analytics- utilisateurs-44b0096084e2 # .4b3egtbxh

Voici le problème du projet sur lequel je travaillais, qui inclut le commit qui a résolu le problème: https://github.com/OneBusAway/onebusaway-Android/issues/342

MODIFIER

Les utilisateurs signalent que cela est résolu en 8.3, ce qui signifie que vous pouvez résoudre ce problème en définissant votre build.gradle sur:

compile 'com.google.Android.gms:play-services-analytics:8.3.0'

Je dois encore me confirmer.

6
Sean Barbeau

J'ai eu une erreur similaire lorsque je mettais récemment à niveau ma dépendance au service de jeu. Cela semble se produire lorsque vous omettez de mettre à jour les dépendances firebase qui correspondent à la version des services de lecture que vous utilisez.

Voici ce qu'étaient les deux versions de mes dépendances:

Version d'erreur des dépendances

compile 'com.google.firebase:firebase-appindexing:10.0.1'
compile 'com.google.Android.gms:play-services-maps:10.0.1'
compile 'com.google.Android.gms:play-services-places:10.0.1'
compile 'com.google.Android.gms:play-services-location:10.0.1'
compile 'com.google.firebase:firebase-auth:9.8.0'
compile 'com.google.firebase:firebase-database:9.8.0'
compile 'com.firebaseui:firebase-ui-database:1.0.1'
compile 'com.google.firebase:firebase-storage:9.8.0'

Version de travail des dépendances `` 

compile 'com.google.firebase:firebase-appindexing:10.0.1'
compile 'com.google.Android.gms:play-services-maps:10.0.1'
compile 'com.google.Android.gms:play-services-places:10.0.1'
compile 'com.google.Android.gms:play-services-location:10.0.1'
compile 'com.google.firebase:firebase-auth:10.0.0'
compile 'com.google.firebase:firebase-database:10.0.0'
compile 'com.firebaseui:firebase-ui-database:1.0.1'
compile 'com.google.firebase:firebase-storage:10.0.0'

``... Google semble déplacer les mises à jour de service de jeu avec les mises à jour de firebase ces jours-ci. J'espère que cela sauvera quelques âmes.

1
larrytech

En ce qui me concerne, je viens de synchroniser tous les modules de mon projet pour utiliser une bibliothèque de services de lecture récente.

ce que j'utilise dans mon build.gradle (pour tous les modules):

compile 'com.Android.support:support-v4:23.0.1'
compile 'com.Android.support:appcompat-v7:23.0.1'
compile 'com.google.Android.gms:play-services:7.8.0'

Avant j'utilisais compile 'com.google.Android.gms:play-services:7.5.0'

J'espère que ça aide quelqu'un.

0
Driss Bounouar

Le problème vient lorsque je mets à jour la version, j'essaie toutes les solutions mais ne fonctionne pas pour moi.Ensuite, je vois ceci # 24109609 et la règle dans Pro-Guard fonctionne pour moi. 

-keepattributes Signature -keep class com.firebase.** { *; }
-keep class org.Apache.** { *; }
-keepnames class com.fasterxml.jackson.** { *; }
-keepnames class javax.servlet.** { *; }
-keepnames class org.ietf.jgss.** { *; }
-dontwarn org.Apache.** -dontwarn org.w3c.dom.**
-dontwarn Android.support.v4.**
-dontwarn com.google.Android.gms.**
-dontwarn com.google.firebase.**
-keep class * extends com.myCompany.package.flavor.Flavor { *; }
-keep class com.myCompany.** { *; }
0
Md Imran Choudhury