App crash on first launch without internet

https://play.google.com/store/apps/details?id=riwu.sampling.survey
source: https://github.com/riwu/synergy-lab-time-estimation/tree/master/client/android

If I install the app from Google Play and turn off internet connection before opening for the first time, the app crashes when opened.
The app is able to run normally with internet connection.

Debugged it adb logcat, crash log as follow:

--------- beginning of crash
10-28 23:04:10.402  5934  5973 E AndroidRuntime: FATAL EXCEPTION: OkHttp Dispatcher
10-28 23:04:10.402  5934  5973 E AndroidRuntime: Process: riwu.sampling.survey, PID: 5934
10-28 23:04:10.402  5934  5973 E AndroidRuntime: java.lang.RuntimeException: Could not load app.
10-28 23:04:10.402  5934  5973 E AndroidRuntime: 	at host.exp.exponent.kernel.ExpoViewKernel.handleError(ExpoViewKernel.java:76)
10-28 23:04:10.402  5934  5973 E AndroidRuntime: 	at host.exp.expoview.ExponentActivity$2.onError(ExponentActivity.java:115)
10-28 23:04:10.402  5934  5973 E AndroidRuntime: 	at host.exp.exponent.ExponentManifest$3.onFailure(ExponentManifest.java:258)
10-28 23:04:10.402  5934  5973 E AndroidRuntime: 	at host.exp.exponent.network.ExponentHttpClient$2$1.onFailure(ExponentHttpClient.java:95)
10-28 23:04:10.402  5934  5973 E AndroidRuntime: 	at expolib_v1.okhttp3.RealCall$AsyncCall.execute(RealCall.java:142)
10-28 23:04:10.402  5934  5973 E AndroidRuntime: 	at expolib_v1.okhttp3.internal.NamedRunnable.run(NamedRunnable.java:32)
10-28 23:04:10.402  5934  5973 E AndroidRuntime: 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
10-28 23:04:10.402  5934  5973 E AndroidRuntime: 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
10-28 23:04:10.402  5934  5973 E AndroidRuntime: 	at java.lang.Thread.run(Thread.java:764)
10-28 23:04:10.402  5934  5973 E AndroidRuntime: Caused by: Could not load app.
10-28 23:04:10.402  5934  5973 E AndroidRuntime: 	... 7 more
10-28 23:04:10.403  1360  1392 E SurfaceFlinger: ro.sf.lcd_density must be defined as a build property
10-28 23:04:10.403  5934  5975 D OpenGLRenderer: HWUI GL Pipeline
10-28 23:04:10.407  1500  3287 W ActivityManager:   Force finishing activity riwu.sampling.survey/.MainActivity
10-28 23:04:10.417  1500  1515 I ActivityManager: Showing crash dialog for package riwu.sampling.survey u0
10-28 23:04:10.442  1352  1352 D gralloc_ranchu: gralloc_alloc: Creating ashmem region of size 4096
10-28 23:04:10.447  5934  5975 D         : HostConnection::get() New Host Connection established 0x9eb64bc0, tid 5975
10-28 23:04:10.451  1352  1352 D gralloc_ranchu: gralloc_alloc: Creating ashmem region of size 4096
10-28 23:04:10.459  1352  1352 D gralloc_ranchu: gralloc_alloc: Creating ashmem region of size 4096
10-28 23:04:10.461  5934  5949 D GraphRequest: Warning: Request without access token missing application ID or client token.
10-28 23:04:10.486  1352  1352 D gralloc_ranchu: gralloc_alloc: Creating ashmem region of size 4096
10-28 23:04:10.486  1500  2218 D WindowManager: relayoutVisibleWindow: Window{b86f3b5 u0 com.google.android.apps.nexuslauncher/com.google.android.apps.nexuslauncher.NexusLauncherActivity EXITING} mAnimatingExit=true, mRemoveOnExit=false, mDestroying=false
10-28 23:04:10.496  1500  2059 D WindowManager: relayoutVisibleWindow: Window{c381498 u0 com.google.android.apps.nexuslauncher/com.google.android.apps.nexuslauncher.NexusLauncherActivity EXITING} mAnimatingExit=true, mRemoveOnExit=false, mDestroying=false
10-28 23:04:10.533  1500  1755 I WindowManager: Failed to capture screenshot of Token{51dadce ActivityRecord{d9752c9 u0 riwu.sampling.survey/.MainActivity t153 f}} appWin=Window{54854c4 u0 riwu.sampling.survey/riwu.sampling.survey.MainActivity} drawState=1

Full log: https://gist.github.com/riwu/471766d93fca09b286087d2f40f5a5d9#file-crash-log
Gradle dependencies: https://gist.github.com/riwu/471766d93fca09b286087d2f40f5a5d9#file-gradle-dependencies

There were no build warnings but Android Studio gave a warning about build.gradle - All com.android.support libraries must use the exact same version specification - Stack Overflow though i doubt that’s the cause of crash since it works with internet connection.