Android上的Lambda调用随机失败

时间:2017-03-15 12:06:21

标签: android lambda java-8 android-jack-and-jill

刚刚开始在一个新项目中使用lambdas,当应用程序崩溃时出现以下堆栈跟踪问题:

I/art: Rejecting re-init on previously-failed class java.lang.Class<com.test.-$Lambda$3>
D/AndroidRuntime: Shutting down VM
E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.test, PID: 18852
    java.lang.NoClassDefFoundError: com.test.-$Lambda$3
    ... method which calls lambda ...

有趣的是它有时会起作用,但我仍然无法弄清楚是什么让它起作用,什么打破了。

jackOptions1.8 compatibility都在build.gradle中启用。 compileSdkVersion是25.设备正在运行Android 5.0。生成的apk定义了此com.test.-$Lambda$3类。

除了完全启用lambdas之外还有什么应该做的吗?如何调试此问题以找出真正的根本原因?

更新1:

这听起来很奇怪,但看起来像lambda调用编译混乱。假设生成的APK已定义$Lambda$1:Runnable$Lambda$2:Consumer,我看到特定的方法调用$Lambda$1,而必须是$Lambda$2

0 个答案:

没有答案