由于涉及Lambda表达式,堆栈变得复杂(注意由于混淆而丢失了行号)。"access$lambda$12"实际上是什么意思?在不知道实际行号的情况下,有没有一种方法可以定位到代码中的此处?
at com.group.RKGroup.com.my.MyClass access$lambda$12(com.group.RKGroup,int,com.my.PType) (RKGroup.java:43324)
行号无用,因为此堆栈跟踪已使用Proguard进行了混淆。
由于涉及Lambda表达式,堆栈变得复杂(注意由于混淆而丢失了行号)。"access$lambda$12"实际上是什么意思?在不知道实际行号的情况下,有没有一种方法可以定位到代码中的此处?
at com.group.RKGroup.com.my.MyClass access$lambda$12(com.group.RKGroup,int,com.my.PType) (RKGroup.java:43324)
access
的方法中声明了一个lambda表达式。可能是该方法中的第12个lambda表达式...虽然我不能确定。
好的,这解释了你如何得到请注意,由于混淆,行号丢失了。
void
[错字]作为类名。但这也意味着方法名也可能是伪造的。lambda
,但是... javac
不会生成这样的名称(接近但不是这个)。即使没有指定,javac
也会将它们生成为lambda$<method-name-where-used>$<incremental-number>
List<Integer> r = Stream.of(1).map(x -> x).collect(Collectors.toList());
lambda$new$<incremental-number>
access
)首先出现,因此这看起来非常像android
的retro-lambda
。如果我没记错,他们会生成像这样的代码,再次未指定,但它真正意味着的是在您的access
方法中有一个lambda表达式,特别是该方法中的第12个lambda。同样,如果我没记错,retro-lambda使用相同的逐步命名方法。
access
方法中声明了一个lambda。可能是该方法中的第12个...虽然我不能保证。 - Stephen C