in version 7.1.1 and earlier, if a obfuscated stack frame resolves to multiple clear frames, they are printed as multiple lines:
Version 7.1.1:
at com.example.myapplication.Foo.foo(Foo.java:7)
at com.example.myapplication.MainActivity.onClick(MainActivity.java:38)
at com.example.myapplication.MainActivity.Greeting$lambda$1$lambda$0(MainActivity.java:43)
at S0.MainActivity$$ExternalSyntheticLambda0.invoke(MainActivity.java:0)
Version 7.5.0:
But newer versions print them in a single line:
at com.example.myapplication.Foo.foo(Foo.java:7) at com.example.myapplication.MainActivity.onClick(MainActivity.java:38) at com.example.myapplication.MainActivity.Greeting$lambda$1$lambda$0(MainActivity.java:43) at S0.MainActivity$$ExternalSyntheticLambda0.invoke(MainActivity.java:0)
The problem seems to be in in ReTrace.handle():
Frames lines are appended to a StringBuilder:
result.append(trimmedLine);
Without a newline. This should probably be changed to:
result.append(trimmedLine);
if (retracedFrames.hasNext()) {
result.append("\n");
}
in version 7.1.1 and earlier, if a obfuscated stack frame resolves to multiple clear frames, they are printed as multiple lines:
Version 7.1.1:
Version 7.5.0: But newer versions print them in a single line:
The problem seems to be in in
ReTrace.handle()
:Frames lines are appended to a
StringBuilder
:Without a newline. This should probably be changed to:
Sending a PR.