Unknown source when using Proguard

My crash report is a little useless if I use Proguard ( minifyEnabled true and shrinkResources true )

This is a report from Proguard:

 java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.ProgressBar.setVisibility(int)' on a null object reference at xx.xxxx.xxx.xxxxx.xxxxxx.restoreViewAfterLoading(Unknown Source) at xx.xxxx.xxx.xxxxx.xxxxxx.newInstance(Unknown Source) onCreateView onViewCreated access$000 at xx.xxxx.xxx.xxxxx.xxxxxx$1.success(Unknown Source) at xx.xxxx.xxx.xxxxx.xxxxxx$1.success(Unknown Source) at retrofit.CallbackRunnable$1.run(Unknown Source) at android.os.Handler.handleCallback(Handler.java:739) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:135) at android.app.ActivityThread.main(ActivityThread.java:5254) at java.lang.reflect.Method.invoke(Native Method) at java.lang.reflect.Method.invoke(Method.java:372) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698) 

And this is a regular report without Proguard:

 java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.ProgressBar.setVisibility(int)' on a null object reference at xx.xxxx.xxx.xxxxx.xxxxxx.restoreViewAfterLoading(xxxxxx.java:123) at xx.xxxx.xxx.xxxxx.xxxxxx.access$000(xxxxxx.java:26) at xx.xxxx.xxx.xxxxx.xxxxxx$1.success(xxxxxx.java:96) at xx.xxxx.xxx.xxxxx.xxxxxx$1.success(xxxxxx.java:92) at retrofit.CallbackRunnable$1.run(CallbackRunnable.java:45) at android.os.Handler.handleCallback(Handler.java:739) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:135) at android.app.ActivityThread.main(ActivityThread.java:5254) at java.lang.reflect.Method.invoke(Native Method) at java.lang.reflect.Method.invoke(Method.java:372) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698) 

Is there something I can do to get line numbers using Proguard?

+6
source share
1 answer

It looks like you have NPE in some kind of file in the restoreViewAfterLoading method, where setVisibility is called on the ProgressBar (which is null) around line 123 of some file. All this happens with a retroized callback. So my first thoughts to fix is ​​to check for null if the user has completed this action / snippet.

to get better line numbering. Add the following to the proguard configuration:

 # Preserve annotations, line numbers, and source file names -keepattributes *Annotation*,SourceFile,LineNumberTable 

This will save line numbers in the blurred stack stacks.

HTHS

+9
source

Source: https://habr.com/ru/post/986517/


All Articles