web-dev-qa-db-fra.com

Comment utiliser -dontwarn dans ProGuard?

J'utilise Android studio pour créer une application de débogage et de publication. Lorsque je crée une application de débogage/publication

./gradlew assembleDebug

./gradlew assembleRelease

les deux versions sont créées parfaitement et fonctionnent également. Affiche la boîte de dialogue appropriée pour le débogage ou la publication

maintenant j'ai ajouté des détails de proguard dans build.gradle:

signingConfigs {
    myConfig {
           storeFile file("keystore.jks")
           storePassword "abc123!"
           keyAlias "androidreleasekey"
           keyPassword "pqrs123!"
    }
}

buildTypes {
    release {
        runProguard true
        proguardFile getDefaultProguardFile('proguard-Android-optimize.txt')
        signingConfig signingConfigs.myConfig
    }
}
productFlavors {
    defaultFlavor {
        proguardFile 'proguard-rules.txt'
    }
}

Maintenant, il affiche une erreur dans le journal des événements comme

Avertissement: il y avait 7 références non résolues à des classes ou des interfaces. Vous devrez peut-être ajouter des pots de bibliothèque manquants ou mettre à jour leurs versions. Si votre code fonctionne correctement sans les classes manquantes, vous pouvez supprimer les avertissements avec les options '-dontwarn'. ( http://proguard.sourceforge.net/manual/troubleshooting.html#unresolvedclass )

Avertissement: il y avait 2 références non résolues aux membres de la classe de programme. Vos classes d'entrée semblent incohérentes. Vous devrez peut-être recompiler le code.

( http://proguard.sourceforge.net/manual/troubleshooting.html#unresolvedprogramclassmember ): Ventes Flash: proguardDefaultFlavorRelease FAILED

Si je mets l'option runProguard sur false, alors son exécution.

J'ai ces questions:

1) est-il correct de libérer apk avec runProguard = false?

2) Comment utiliser dontwarn lors de la création d'une version?

33
morya

Lorsque j'ajoute une nouvelle bibliothèque au projet Généralement, voici comment je dois définir pour Progaurd.

Disons que j'utilise la librairie Twitter4J, puis j'ajoute dontwarn de cette façon.

-tenir la classe Twitter4j. ** {*; }

-Ne pas avertir Twitter4j. **

27
swiftBoy

Placez les lignes -dontwarn dans le fichier proguard-rules.pro ou proguard-rules.txt.

J'ai dû chercher ça ailleurs car aucune des réponses ne contenait cette information. Vérifiez les autres réponses pour les lignes spécifiques dont vous avez besoin pour votre cas.

0
JJ Du Plessis