You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Expo预构建React Native Android应用在Android 14启动崩溃求助

Expo预构建APK在Android 14真机启动崩溃解决方案

问题背景

使用EAS Build构建的Expo预构建APK,在Android 13模拟器上运行正常,但在Android 14真机启动时会在闪屏前卡住或崩溃,iOS端无异常。

构建配置

android.compileSdkVersion=33 android.targetSdkVersion=34 android.buildToolsVersion=33.0.0 expo.jsEngine=hermes

核心依赖版本

"expo": "^48.0.0", "react": "18.2.0", "react-native": "0.71.14"

崩溃日志

07-21 14:55:13.169 20192 20192 E AndroidRuntime: FATAL EXCEPTION: main
07-21 14:55:13.169 20192 20192 E AndroidRuntime: Process: com.app.investment, PID: 20192
07-21 14:55:13.169 20192 20192 E AndroidRuntime: java.lang.AbstractMethodError: abstract method "java.lang.Object java.lang.ClassValue.computeValue(java.lang.Class)"
07-21 14:55:13.169 20192 20192 E AndroidRuntime:        at java.lang.ClassValue.getFromHashMap(ClassValue.java:230)
07-21 14:55:13.169 20192 20192 E AndroidRuntime:        at java.lang.ClassValue.getFromBackup(ClassValue.java:212)
07-21 14:55:13.169 20192 20192 E AndroidRuntime:        at java.lang.ClassValue.get(ClassValue.java:116)
07-21 14:55:13.169 20192 20192 E AndroidRuntime:        at kotlin.reflect.jvm.internal.d.a(Unknown Source:7)
07-21 14:55:13.169 20192 20192 E AndroidRuntime:        at kotlin.reflect.jvm.internal.c.c(Unknown Source:7)
07-21 14:55:13.169 20192 20192 E AndroidRuntime:        at kotlin.reflect.jvm.internal.k0.b(Unknown Source:0)
07-21 14:55:13.169 20192 20192 E AndroidRuntime:        at kotlin.jvm.internal.a0.b(Unknown Source:2)
07-21 14:55:13.169 20192 20192 E AndroidRuntime:        at expo.modules.b$a$a.compare(Unknown Source:8)
07-21 14:55:13.169 20192 20192 E AndroidRuntime:        at java.util.TimSort.countRunAndMakeAscending(TimSort.java:355)
07-21 14:55:13.169 20192 20192 E AndroidRuntime:        at java.util.TimSort.sort(TimSort.java:220)
07-21 14:55:13.169 20192 20192 E AndroidRuntime:        at java.util.Arrays.sort(Arrays.java:1270)
07-21 14:55:13.169 20192 20192 E AndroidRuntime:        at kotlin.collections.l.n(Unknown Source:14)
07-21 14:55:13.169 20192 20192 E AndroidRuntime:        at kotlin.collections.y.u0(Unknown Source:36)
07-21 14:55:13.169 20192 20192 E AndroidRuntime:        at kotlin.collections.o.u0(Unknown Source:0)
07-21 14:55:13.169 20192 20192 E AndroidRuntime:        at expo.modules.b$a.a(Unknown Source:30)
07-21 14:55:13.169 20192 20192 E AndroidRuntime:        at expo.modules.b$a.g(Unknown Source:0)
07-21 14:55:13.169 20192 20192 E AndroidRuntime:        at db.t.getValue(Unknown Source:20)
07-21 14:55:13.169 20192 20192 E AndroidRuntime:        at expo.modules.b$b.a(Unknown Source:4)
07-21 14:55:13.169 20192 20192 E AndroidRuntime:        at expo.modules.f.<init>(Unknown Source:17)
07-21 14:55:13.169 20192 20192 E AndroidRuntime:        at expo.modules.e.<init>(Unknown Source:10)
07-21 14:55:13.169 20192 20192 E AndroidRuntime:        at com.app.investment.MainApplication.<init>(Unknown Source:10)
07-21 14:55:13.169 20192 20192 E AndroidRuntime:        at java.lang.Class.newInstance(Native Method)
07-21 14:55:13.169 20192 20192 E AndroidRuntime:        at android.app.AppComponentFactory.instantiateApplication(AppComponentFactory.java:76)
07-21 14:55:13.169 20192 20192 E AndroidRuntime:        at androidx.core.app.CoreComponentFactory.instantiateApplication(Unknown Source:0)
07-21 14:55:13.169 20192 20192 E AndroidRuntime:        at android.app.Instrumentation.newApplication(Instrumentation.java:1353)
07-21 14:55:13.169 20192 20192 E AndroidRuntime:        at android.app.LoadedApk.makeApplicationInner(LoadedApk.java:1467)
07-21 14:55:13.169 20192 20192 E AndroidRuntime:        at android.app.LoadedApk.makeApplicationInner(LoadedApk.java:1399)
07-21 14:55:13.169 20192 20192 E AndroidRuntime:        at android.app.ActivityThread.handleBindApplication(ActivityThread.java:7359)
07-21 14:55:13.169 20192 20192 E AndroidRuntime:        at android.app.ActivityThread.-$$Nest$mhandleBindApplication(Unknown Source:0)
07-21 14:55:13.169 20192 20192 E AndroidRuntime:        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2379)
07-21 14:55:13.169 20192 20192 E AndroidRuntime:        at android.os.Handler.dispatchMessage(Handler.java:107)
07-21 14:55:13.169 20192 20192 E AndroidRuntime:        at android.os.Looper.loopOnce(Looper.java:232)
07-21 14:55:13.169 20192 20192 E AndroidRuntime:        at android.os.Looper.loop(Looper.java:317)
07-21 14:55:13.169 20192 20192 E AndroidRuntime:        at android.app.ActivityThread.main(ActivityThread.java:8592)
07-21 14:55:13.169 20192 20192 E AndroidRuntime:        at java.lang.reflect.Method.invoke(Native Method)
07-21 14:55:13.169 20192 20192 E AndroidRuntime:        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:580)
07-21 14:55:13.169 20192 20192 E AndroidRuntime:        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:878)

解决方案

这个错误源于Kotlin版本与Android 14的API不兼容,结合你的Expo和React Native版本,执行以下步骤:

  1. 升级Kotlin版本
    在项目的android/build.gradle文件中,将ext.kotlin_version修改为1.8.22(React Native 0.71.x推荐的稳定版本):

    buildscript {
        ext {
            kotlin_version = "1.8.22"
        }
    }
    
  2. 同步Android构建配置
    将android.buildToolsVersion升级到34.0.0,与targetSdkVersion=34保持一致,修改app.json或eas.json中的配置:

    android.buildToolsVersion=34.0.0
    
  3. 清理构建缓存并重新构建
    执行以下命令清理EAS缓存,避免旧构建文件干扰:

    eas build --clear-cache
    

    之后重新触发EAS Build构建APK。

  4. 更新Expo依赖补丁
    将Expo相关依赖更新到Expo 48的最新补丁版本,确保模块适配Android 14:

    npm install expo@~48.0.20
    

内容的提问来源于stack exchange,提问作者Abdullah Zafar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 15:20:54