Comment déboguer avec des applications obscènes (avec ProGuard) sur Android?

Quand j'ai eu quelque chose comme ça

ERROR/AndroidRuntime(18677): Caused by: java.lang.NullPointerException ERROR/AndroidRuntime(18677): at com.companyname.aaa(Unknown Source) 

Comment puis-je savoir où est le problème et résoudre ce problème? Je n'ai eu que la sortie de cartographie de ProGuard et je ne connais pas le numéro de ligne. Merci.

  • Android Volley: ImageRequest obsolète
  • Android-Service tué avec "ne veulent plus" - comment le redémarrer?
  • Utilise le setRetainInstance de Fragment (vrai) vraiment une bonne pratique pour gérer le changement de rotation
  • SaveAllInBackground ne fonctionne pas dans deleteAllInBackground comme souhaité
  • TelephonyManager.getLine1Number () en panne?
  • Comment configurer l'ombre dans une vue dans Android?
  • Google Map Google comment vérifier si l'emplacement des GPS est dans le cercle
  • Utilisation du mode hôte USB 3.1 avec Arduino
  • Mode idéal pour annuler une AsyncTask d'exécution
  • Définissez par programme la visibilité du fragment de carte google (API2)
  • Obtenez des groupes de contact?
  • Trouvez ma version d'application aérienne dans AS3 sur iOS et Android
  • 3 Solutions collect form web for “Comment déboguer avec des applications obscènes (avec ProGuard) sur Android?”

    Ajoutez les lignes suivantes à votre configuration Proguard.

     -renamesourcefileattribute SourceFile -keepattributes SourceFile,LineNumberTable 

    Maintenant, vos traces de pile incluront des numéros de ligne et, en utilisant l'outil de retrait fourni avec proguard (inclus dans le SDK d'Android), vous pouvez déboguer comme normal.

    Notez que même si vous n'avez pas utilisé ces deux options de configuration, retrace encore peut produire des informations utiles à condition que vous ayez le fichier de mappage, mais pas totalement sans ambiguïté.

    Remarque: le fichier avec les mappages est produit par l'option de configuration Proguard:

      -printmapping outputfile.txt 

    Dans le fichier ant fourni avec le SDK Android, il est défini sur mapping.txt.

    Bonne chance.

    Pour utiliser toutes les traces de pile de votre compte Android Market, vous pouvez utiliser votre fichier cartographique, produit avec l'option -printmapping dans la configuration ProGuard, avec ReTrace (outil complémentaire ProGuard) pour décoder la trace de la pile. Vous pouvez également décoder à la main en utilisant le contenu du fichier cartographique, mais c'est fastidieux.

    Dans le manuel ProGuard sous les exemples, il existe une section sur la production de traces de pile obsolètes utiles, y compris la façon de conserver les numéros de ligne.

    Malheureusement, si vous n'avez pas configuré ProGuard pour conserver les numéros de ligne, vous ne pourrez identifier que la méthode qui jette l'exception.

    Collez votre trace de pile dans stack_trace.txt

    Exécutez la commande suivante: java -jar retrace.jar classes-processed.map stack_trace.txt

    Retrace.jar est dans sdk \ tools \ proguard \ lib \ retrace.jar classes-processed.map est le fichier de sortie généré par proguard lorsque vous avez foutu

    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.