今天在使用低版本android手機(jī)測(cè)試應(yīng)用兼容性的時(shí)候,出現(xiàn)了Crash的情形,Android Studio版本為3.0,測(cè)試版本為API 16(Lollipop之前均存在此情況,高于5.0的版本運(yùn)行正常),下面是IDE打印的錯(cuò)誤日志:
java.lang.ExceptionInInitializerError
at android.support.multidex.MultiDexApplication.<init>(MultiDexApplication.java:35)
at com.gome.common.base.GApplication.<init>(GApplication.kt:19)
at com.gome.retail.AppGlobal.<init>(AppGlobal.kt:20)
at java.lang.Class.newInstanceImpl(Native Method)
at java.lang.Class.newInstance(Class.java:1319)
at android.app.Instrumentation.newApplication(Instrumentation.java:982)
at android.app.Instrumentation.newApplication(Instrumentation.java:967)
at android.app.LoadedApk.makeApplication(LoadedApk.java:502)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4156)
at android.app.ActivityThread.access$1300(ActivityThread.java:134)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1262)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4777)
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:764)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:531)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.UnsatisfiedLinkError: Cannot load library: reloc_library[1306]: 116 cannot locate '__isnanf'...
根據(jù)經(jīng)驗(yàn),定位為multidex的版本兼容問(wèn)題,google搜索了一番,有網(wǎng)友出現(xiàn)了類似的情況 https://stackoverflow.com/questions/47290086/android-multidex-app-crashing-on-low-apis-on-android-studio-3-0
原因在于Android Studio 3.0引入了一項(xiàng)新功能: 高級(jí)分析器功能,因?yàn)檎桨姘l(fā)布時(shí)間不長(zhǎng),存在一些穩(wěn)定性問(wèn)題,只需關(guān)閉此功能即可:
- 打開Edit Configurations:

- 在Adnroid App下選中當(dāng)前app,并選擇Profiling一欄,取消勾選“Enable advanced profiling”
