2

我遇到了一次崩溃,我不能 100% 确定发生了什么。我的怀疑是它与 retrolambda 在幕后所做的事情有关,以实现在 Java 8 之前使用 lambda。我收到以下崩溃:

04-21 13:50:32.609 1199-1199/com.ariets.af.debug E/AndroidRuntime: FATAL EXCEPTION: main java.lang.NoClassDefFoundError: java.util.Objects
at com.abercrombie.android.sdk.AFSDK.initialize(AFSDK.java:154)
at com.ariets.af.data.sdk.SDKClient.observeSdkInitialize(SDKClient.java:474)
at com.ariets.af.ui.splash.AfSplashScreenPresenterImpl.setupAfSdk(AfSplashScreenPresenterImpl.java:69)
at com.ariets.af.ui.splash.AFSplashScreenActivity.onCreate(AFSplashScreenActivity.java:84)
at android.app.Activity.performCreate(Activity.java:5008)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1079)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2023)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084)
at android.app.ActivityThread.access$600(ActivityThread.java:130)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1195)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4745)                              
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
at dalvik.system.NativeStart.main(Native Method)

没有直接使用java.util.Objects(实际上,在我的代码中搜索它并没有显示任何结果)。以下是我的代码的摘录:

findRegion().flatMap(afRegion -> setupSharedVariables(afRegion))
    .flatMap(afRegion -> fetchContent(afRegion)) // THIS IS WHERE THE CRASH OCCURS
    .flatMap(sessionHandler::initializeSession)
    .doOnNext(complete -> {
      isStarted = true;
      logTime("startUp successfully completed", start);
    });

关于应用程序设置的一些背景:

  • 我们使用 retrolambda 来支持在以前的 Java 版本上使用 lambda。
  • 我们的 minSdkVersion 是 16。
  • 我们正在使用的几个 gradle 插件(如果这些插件中的任何一个会提供一些关于正在发生的事情的信息):

就像我上面说的,我认为这可能与幕后发生的事情有关。很可能有些东西正在添加java.util.Objects(在 API 16 上不可用)。有人有可能对我有用的信息吗?在不提高 minSdkVersion 的情况下,我将如何规避这个问题?

4

0 回答 0