question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

[Bug] Latest dev versions crash on Android 4.x

See original GitHub issue

Logcat from API 19 (KitKat) emulator:

01-05 15:11:39.926 4187-4205/? E/AndroidRuntime: FATAL EXCEPTION: RxComputationScheduler-2
    Process: eu.kanade.tachiyomi.debug:acra, PID: 4187
    java.lang.IllegalStateException: Fatal Exception thrown on Scheduler.Worker thread.
        at rx.internal.schedulers.ScheduledAction.run(ScheduledAction.java:59)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:422)
        at java.util.concurrent.FutureTask.run(FutureTask.java:237)
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:152)
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:265)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
        at java.lang.Thread.run(Thread.java:841)
     Caused by: java.lang.ExceptionInInitializerError
        at okhttp3.internal.platform.Platform$Companion.findPlatform(Platform.kt:211)
        at okhttp3.internal.platform.Platform$Companion.access$findPlatform(Platform.kt:179)
        at okhttp3.internal.platform.Platform.<clinit>(Platform.kt:180)
        at okhttp3.internal.tls.CertificateChainCleaner$Companion.get(CertificateChainCleaner.kt:42)
        at okhttp3.OkHttpClient$Builder.sslSocketFactory(OkHttpClient.kt:728)
        at eu.kanade.tachiyomi.network.NetworkHelper.enableTLS12(NetworkHelper.kt:100)
        at eu.kanade.tachiyomi.network.NetworkHelper.<init>(NetworkHelper.kt:27)
        at eu.kanade.tachiyomi.AppModule$registerInjectables$5.invoke(AppModule.kt:32)
        at eu.kanade.tachiyomi.AppModule$registerInjectables$5.invoke(AppModule.kt:18)
        at uy.kohesive.injekt.registry.default.DefaultRegistrar$addSingletonFactory$1$$special$$inlined$getOrPut$lambda$1.invoke(DefaultRegistrar.kt:49)
        at kotlin.SynchronizedLazyImpl.getValue(LazyJVM.kt:74)
        at uy.kohesive.injekt.registry.default.DefaultRegistrar$addSingletonFactory$1.invoke(DefaultRegistrar.kt:173)
        at uy.kohesive.injekt.registry.default.DefaultRegistrar.getInstance(DefaultRegistrar.kt:103)
        at eu.kanade.tachiyomi.AppModule$registerInjectables$12.invoke(AppModule.kt:64)
        at eu.kanade.tachiyomi.AppModule$registerInjectables$12.invoke(AppModule.kt:18)
        at eu.kanade.tachiyomi.AppModule$rxAsync$1.call(AppModule.kt:59)
        at eu.kanade.tachiyomi.AppModule$rxAsync$1.call(AppModule.kt:18)
        at rx.internal.operators.OnSubscribeFromCallable.call(OnSubscribeFromCallable.java:48)
        at rx.internal.operators.OnSubscribeFromCallable.call(OnSubscribeFromCallable.java:33)
        at rx.Observable.unsafeSubscribe(Observable.java:10327)
        at rx.internal.operators.OperatorSubscribeOn$SubscribeOnSubscriber.call(OperatorSubscribeOn.java:100)
        at rx.internal.schedulers.EventLoopsScheduler$EventLoopWorker$1.call(EventLoopsScheduler.java:172)
        at rx.internal.schedulers.ScheduledAction.run(ScheduledAction.java:55)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:422) 
        at java.util.concurrent.FutureTask.run(FutureTask.java:237) 
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:152) 
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:265) 
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112) 
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587) 
        at java.lang.Thread.run(Thread.java:841) 
     Caused by: java.lang.IllegalStateException: Expected Android API level 21+ but was 19
        at okhttp3.internal.platform.AndroidPlatform.<clinit>(AndroidPlatform.kt:232)
        at okhttp3.internal.platform.Platform$Companion.findPlatform(Platform.kt:211) 
        at okhttp3.internal.platform.Platform$Companion.access$findPlatform(Platform.kt:179) 
        at okhttp3.internal.platform.Platform.<clinit>(Platform.kt:180) 
        at okhttp3.internal.tls.CertificateChainCleaner$Companion.get(CertificateChainCleaner.kt:42) 
        at okhttp3.OkHttpClient$Builder.sslSocketFactory(OkHttpClient.kt:728) 
        at eu.kanade.tachiyomi.network.NetworkHelper.enableTLS12(NetworkHelper.kt:100) 
        at eu.kanade.tachiyomi.network.NetworkHelper.<init>(NetworkHelper.kt:27) 
        at eu.kanade.tachiyomi.AppModule$registerInjectables$5.invoke(AppModule.kt:32) 
        at eu.kanade.tachiyomi.AppModule$registerInjectables$5.invoke(AppModule.kt:18) 
        at uy.kohesive.injekt.registry.default.DefaultRegistrar$addSingletonFactory$1$$special$$inlined$getOrPut$lambda$1.invoke(DefaultRegistrar.kt:49) 
        at kotlin.SynchronizedLazyImpl.getValue(LazyJVM.kt:74) 
        at uy.kohesive.injekt.registry.default.DefaultRegistrar$addSingletonFactory$1.invoke(DefaultRegistrar.kt:173) 
        at uy.kohesive.injekt.registry.default.DefaultRegistrar.getInstance(DefaultRegistrar.kt:103) 
        at eu.kanade.tachiyomi.AppModule$registerInjectables$12.invoke(AppModule.kt:64) 
        at eu.kanade.tachiyomi.AppModule$registerInjectables$12.invoke(AppModule.kt:18) 
        at eu.kanade.tachiyomi.AppModule$rxAsync$1.call(AppModule.kt:59) 
        at eu.kanade.tachiyomi.AppModule$rxAsync$1.call(AppModule.kt:18) 
        at rx.internal.operators.OnSubscribeFromCallable.call(OnSubscribeFromCallable.java:48) 
        at rx.internal.operators.OnSubscribeFromCallable.call(OnSubscribeFromCallable.java:33) 
        at rx.Observable.unsafeSubscribe(Observable.java:10327) 
        at rx.internal.operators.OperatorSubscribeOn$SubscribeOnSubscriber.call(OperatorSubscribeOn.java:100) 
        at rx.internal.schedulers.EventLoopsScheduler$EventLoopWorker$1.call(EventLoopsScheduler.java:172) 
        at rx.internal.schedulers.ScheduledAction.run(ScheduledAction.java:55) 
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:422) 
        at java.util.concurrent.FutureTask.run(FutureTask.java:237) 
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:152) 
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:265) 
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112) 
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587) 
        at java.lang.Thread.run(Thread.java:841) 

Oddly enough, it didn’t crash in an API 16 (Jelly Bean) emulator.

This is due to OkHttp dropping support for Android 4.x: https://developer.squareup.com/blog/okhttp-3-13-requires-android-5/

But we require the new version of OkHttp to work in conjunction with the latest versions of Retrofit, which is required for AndroidX, which is required for the latest versions of the Android SDK.

Issue Analytics

  • State:closed
  • Created 4 years ago
  • Reactions:1
  • Comments:17 (6 by maintainers)

github_iconTop GitHub Comments

2reactions
CarlosEscocommented, Mar 4, 2020

Yea it sucks ereader companies are slacking

1reaction
Ryogo-Zcommented, Mar 4, 2020

That is really sad since there are still a lot of e-ink readers running android 4.4. Hell, many of those readers still sold in stores (Nook Glowlight 3, any Tolino reader). I hope 0.85 build will last long enough…

Read more comments on GitHub >

github_iconTop Results From Across the Web

[Bug] Latest dev versions crash on Android 4.x · Issue #2436
This was something expected. I'm one of those few users with KitKat (I don't really want to specify the reasons I'm still using...
Read more >
Crashes
An Android app crashes whenever there's an unexpected exit caused by an unhandled exception or signal. An app that is written using Java...
Read more >
Why do my apps keep crashing on Android, How to fix it
Another way to fix apps crashing on your phone is to simply restart the device. Restarting the device will kill and then restart...
Read more >
Fixing the Latest Apps Crashing Bug from Android System ...
Try updating to the latest versions [2:57] 3. And then reboot the phone 4. Or go the "Uninstall Update" route for Chrome and...
Read more >
Fix an installed Android app that isn't working
Step 1: Restart & update · Open your phone's Settings app. · Near the bottom, tap System and then Advanced and then System...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found