title: Proguard Stack in Crashlytics
body: <p>I have several recurrent logs in Crashlytics that I can't read.</p>
  
  <pre><code>java.lang.NullPointerException
     at ahm.onClick(SourceFile:239)
     at android.view.View.performClick(View.java:4212)
     at android.view.View$PerformClick.run(View.java:17476)
     at android.os.Handler.handleCallback(Handler.java:800)
     at android.os.Handler.dispatchMessage(Handler.java:100)
     at android.os.Looper.loop(Looper.java:194)
     at android.app.ActivityThread.main(ActivityThread.java:5431)
     at java.lang.reflect.Method.invokeNative(Method.java)
     at java.lang.reflect.Method.invoke(Method.java:525)
     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:833)
     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
     at dalvik.system.NativeStart.main(NativeStart.java)
  </code></pre>
  
  <p>AND </p>
  
  <pre><code>java.lang.NullPointerException
     at com.app.mobile.RutaActivity.a(SourceFile:747)
     at ahh.run(SourceFile:1055)
     at java.lang.Thread.run(Thread.java:856)
  </code></pre>
  
  <p>In the first log, the name of my app's package is never mentioned, so I don't even know where to look for my NPE.</p>
  
  <p>In the second log, I have the FileName (RutaActivity) but when I look at the line number, I see no place for a NPE bug...</p>
  
  <p>How can I do?
  How can I do in the second log to see the method name instead of a?</p>
  
  <p>My Proguard file:</p>
  
  <pre><code>##---------------Begin: proguard configuration common for all Android apps ----------
  -optimizationpasses 5
  -dontskipnonpubliclibraryclassmembers
  -dontpreverify
  -dump class_files.txt
  -printseeds seeds.txt
  -printusage unused.txt
  -printmapping mapping.txt
  
  -optimizations !code/simplification/arithmetic,!field/*,!class/merging/*
  
  -allowaccessmodification
  -renamesourcefileattribute SourceFile
  -keepattributes SourceFile,LineNumberTable, LocalVariableTable,LocalVariableTypeTable
  -repackageclasses ''
  
  
  -keep public class * extends android.app.Activity
  -keep public class * extends android.app.Application
  -keep public class * extends android.app.Service
  -keep public class * extends android.content.BroadcastReceiver
  -keep public class * extends android.content.ContentProvider
  -keep public class * extends android.app.backup.BackupAgentHelper
  -keep public class * extends android.preference.Preference
  -dontnote com.android.vending.licensing.ILicensingService
  
  -keep public class * extends android.view.View {
      public &lt;init&gt;(android.content.Context);
      public &lt;init&gt;(android.content.Context, android.util.AttributeSet);
      public &lt;init&gt;(android.content.Context, android.util.AttributeSet, int);
      public void set*(...);
  }
  
  # Explicitly preserve all serialization members. The Serializable interface
  # is only a marker interface, so it wouldn't save them.
  -keepclassmembers class * implements java.io.Serializable {
      static final long serialVersionUID;
      private static final java.io.ObjectStreamField[] serialPersistentFields;
      private void writeObject(java.io.ObjectOutputStream);
      private void readObject(java.io.ObjectInputStream);
      java.lang.Object writeReplace();
      java.lang.Object readResolve();
  }
  
  
  # Preserve all native method names and the names of their classes.
  -keepclasseswithmembers class * {
      public &lt;init&gt;(android.content.Context, android.util.AttributeSet);
  }
  -keepclassmembers class * extends android.content.Context {
     public void *(android.view.View);
     public void *(android.view.MenuItem);
  }
  
  -keepclassmembers class * {
      @android.webkit.JavascriptInterface &lt;methods&gt;;
  }
  
  
  -keepclasseswithmembernames class * {
      public &lt;init&gt;(android.content.Context, android.util.AttributeSet);
  }
  
  
  -keepclasseswithmembernames class * {
      public &lt;init&gt;(android.content.Context, android.util.AttributeSet, int);
  }
  
  
  # Preserve static fields of inner classes of R classes that might be accessed
  # through introspection.
  -keepclassmembers class **.R$* {
    public static &lt;fields&gt;;
  }
  
  
  ##---------------End: proguard configuration common for all Android apps ----------
  
  
  ##---------------Begin: proguard configuration for Gson  ----------
  # Gson uses generic type information stored in a class file when working with fields. Proguard
  # removes such information by default, so configure it to keep all of it.
  -keepattributes Signature
  
  
  # Gson specific classes
  -keep class sun.misc.Unsafe { *; }
  
  # Application classes that will be serialized/deserialized over Gson
  -keep class com.google.gson.examples.android.model.** { *; }
  
  
  ##---------------End: proguard configuration for Gson  ----------
  
  ##---------------Begin proguard configuration for Google Maps --------------------
  
  -keep class com.google.android.gms.** { *; }
  -dontwarn com.google.android.gms.**
  
  -keep class org.** { *; }
  -keep class * extends java.util.ListResourceBundle {
      protected Object[][] getContents();
  }
  
  -keep public class com.google.android.gms.common.internal.safeparcel.SafeParcelable {
      public static final *** NULL;
  }
  
  -keepnames @com.google.android.gms.common.annotation.KeepName class *
  -keepclassmembernames class * {
      @com.google.android.gms.common.annotation.KeepName *;
  }
  
  
  -renamesourcefileattribute SourceFile
  -keepattributes SourceFile,LineNumberTable
  
  ##---------------End proguard configuration for Google Maps --------------------
  
  ##---------------Begin proguard configuration for my libs  -----------------------
  -keep class com.todddavies.components.progressbar.** { *; }
  -dontwarn com.todddavies.components.progressbar.**
  
  -dontwarn org.apache.**
  
  -keepclassmembers class * implements android.os.Parcelable {
      static ** CREATOR;
  }
  
  #Disable logging
  
  -assumenosideeffects class android.util.Log {
      public static *** d(...);
      public static *** v(...);
      public static *** i(...);
  }
  -keep class com.app.mobile.vo.Captura { *; }
  -keep class com.app.mobile.vo.Formulario { *; }
  -keep class com.app.mobile.vo.Metrica { *; }
  -keep class com.app.mobile.vo.Pdv { *; }
  -keep class com.app.mobile.vo.Proyecto { *; }
  -keep class com.app.mobile.vo.Producto { *; }
  -keep class com.app.mobile.vo.Nota { *; }
  -keep class com.app.mobile.vo.Encuesta { *; }
  -keep class com.app.mobile.vo.Usuario { *; }
  -keep class com.app.mobile.vo.BambooPerf { *; }
  -keep class com.app.mobile.vo.SoftwareVersion { *; }
  </code></pre>