1

Getting runtime exception in Android 5.0 Device and working fine in Android 7.0, We have used IntStream class in projects, there is no compile-time error and it throws the runtime exception when we execute the app.

My build gradle Config is here:

compileSdkVersion 27
defaultConfig {
    applicationId "com.mypackage.app"
    minSdkVersion 19
    targetSdkVersion 27
    versionCode 2
    versionName "2.0"
    multiDexEnabled true
    testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}     compileOptions {
    sourceCompatibility 1.8
    targetCompatibility 1.8
}

Crash logs are followings:

E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.mypackage.app, PID: 27713
    java.lang.IllegalStateException: Fatal Exception thrown on Scheduler.
        at io.reactivex.android.schedulers.HandlerScheduler$ScheduledRunnable.run(HandlerScheduler.java:111)
        at android.os.Handler.handleCallback(Handler.java:746)
        at android.os.Handler.dispatchMessage(Handler.java:95)
        at android.os.Looper.loop(Looper.java:148)
        at android.app.ActivityThread.main(ActivityThread.java:5443)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:728)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
     Caused by: java.lang.NoClassDefFoundError: Failed resolution of: Ljava/util/stream/IntStream;
        at android.app.ActivityThread.main(ActivityThread.java:5443) 
        at java.lang.reflect.Method.invoke(Native Method) 
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:728) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618) 
     Caused by: java.lang.ClassNotFoundException: Didn't find class "java.util.stream.IntStream" on path: DexPathList[[zip file "/data/app/com.fivevs-1/base.apk"],nativeLibraryDirectories=[/data/app/com.fivevs-1/lib/arm, /data/app/com.fivevs-1/base.apk!/lib/armeabi-v7a, /vendor/lib, /system/lib]]
        at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:469)
        at io.reactivex.android.schedulers.HandlerScheduler$ScheduledRunnable.run(HandlerScheduler.java:109) 
        at android.os.Handler.handleCallback(Handler.java:746) 
        at android.os.Handler.dispatchMessage(Handler.java:95) 
        at android.os.Looper.loop(Looper.java:148) 
        at android.app.ActivityThread.main(ActivityThread.java:5443) 
        at java.lang.reflect.Method.invoke(Native Method) 
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:728) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618) 
        Suppressed: java.lang.ClassNotFoundException: java.util.stream.IntStream
        at java.lang.Class.classForName(Native Method)
        at java.lang.BootClassLoader.findClass(ClassLoader.java:781)
        at java.lang.BootClassLoader.loadClass(ClassLoader.java:841)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:504)
                ... 17 more
     Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack trace available
Phantômaxx
  • 37,901
  • 21
  • 84
  • 115
Bhuvnesh
  • 1,055
  • 9
  • 29
  • Where you are using `IntStream` class?. – ॐ Rakesh Kumar Dec 27 '18 at 07:35
  • Actually I have added library(jar file) in my project that lib has used IntStream internally. – Bhuvnesh Dec 27 '18 at 09:56
  • Are you not able to know where exactly you are getting this above error? – ॐ Rakesh Kumar Dec 27 '18 at 10:00
  • 2
    You can't use Java 8 streams on Marshmallow (API level 23). The requirement for availability of streams is minSdkVersion=24. You can work with one of the backports though: android-retrostreams, LSA or streamsupport. See, for example,, https://stackoverflow.com/questions/39515035/is-it-possible-to-use-the-java-8-stream-api-on-android-api-24 – Sartorius Dec 27 '18 at 11:54
  • @Sartorius Thank You for sharing this link, it helped me alot. for now I have removed the code of java 8 streams from lib and used alternate code instead of java 8 streams. – Bhuvnesh Dec 28 '18 at 10:59

0 Answers0