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

React Native启动崩溃:java.lang.ClassNotFoundException异常求助

问题

App启动时崩溃,错误日志如下:

07-20 13:10:05.520  5376  5376 E AndroidRuntime: FATAL EXCEPTION: main
07-20 13:10:05.520  5376  5376 E AndroidRuntime: Process: com.myappName, PID: 5376
07-20 13:10:05.520  5376  5376 E AndroidRuntime: java.lang.RuntimeException: Unable to instantiate application com.myappName.MainApplication package com.myappName: java.lang.ClassNotFoundException: Didn't find class "com.myappName.MainApplication" on path: DexPathList[[zip file "/data/app/~~jMKAsYSvEjMZSEi2dXirHg==/com.myappName-u02x8yQYisyfG6ITJEv3UA==/base.apk"],nativeLibraryDirectories=[/data/app/~~jMKAsYSvEjMZSEi2dXirHg==/com.myappName-u02x8yQYisyfG6ITJEv3UA==/lib/x86_64, /data/app/~~jMKAsYSvEjMZSEi2dXirHg==/com.myappName-u02x8yQYisyfG6ITJEv3UA==/base.apk!/lib/x86_64, /system/lib64, /system_ext/lib64]]
07-20 13:10:05.520  5376  5376 E AndroidRuntime:    at android.app.LoadedApk.makeApplicationInner(LoadedApk.java:1463)
07-20 13:10:05.520  5376  5376 E AndroidRuntime:    at android.app.LoadedApk.makeApplicationInner(LoadedApk.java:1392)
07-20 13:10:05.520  5376  5376 E AndroidRuntime:    at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6740)
07-20 13:10:05.520  5376  5376 E AndroidRuntime:    at android.app.ActivityThread.-$$Nest$mhandleBindApplication(Unknown Source:0)
07-20 13:10:05.520  5376  5376 E AndroidRuntime:    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2132)
07-20 13:10:05.520  5376  5376 E AndroidRuntime:    at android.os.Handler.dispatchMessage(Handler.java:106)
07-20 13:10:05.520  5376  5376 E AndroidRuntime:    at android.os.Looper.loopOnce(Looper.java:201)
07-20 13:10:05.520  5376  5376 E AndroidRuntime:    at android.os.Looper.loop(Looper.java:288)
07-20 13:10:05.520  5376  5376 E AndroidRuntime:    at android.app.ActivityThread.main(ActivityThread.java:7892)
07-20 13:10:05.520  5376  5376 E AndroidRuntime:    at java.lang.reflect.Method.invoke(Native Method)
07-20 13:10:05.520  5376  5376 E AndroidRuntime:    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
07-20 13:10:05.520  5376  5376 E AndroidRuntime:    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:936)
07-20 13:10:05.520  5376  5376 E AndroidRuntime: Caused by: java.lang.ClassNotFoundException: Didn't find class "com.myappName.MainApplication" on path: DexPathList[[zip file "/data/app/~~jMKAsYSvEjMZSEi2dXirHg==/com.myappName-u02x8yQYisyfG6ITJEv3UA==/base.apk"],nativeLibraryDirectories=[/data/app/~~jMKAsYSvEjMZSEi2dXirHg==/com.myappName-u02x8yQYisyfG6ITJEv3UA==/lib/x86_64, /data/app/~~jMKAsYSvEjMZSEi2dXirHg==/com.myappName-u02x8yQYisyfG6ITJEv3UA==/base.apk!/lib/x86_64, /system/lib64, /system_ext/lib64]]
07-20 13:10:05.520  5376  5376 E AndroidRuntime:    at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:259)
07-20 13:10:05.520  5376  5376 E AndroidRuntime:    at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
07-20 13:10:05.520  5376  5376 E AndroidRuntime:    at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
07-20 13:10:05.520  5376  5376 E AndroidRuntime:    at android.app.AppComponentFactory.instantiateApplication(AppComponentFactory.java:76)
07-20 13:10:05.520  5376  5376 E AndroidRuntime:    at androidx.core.app.CoreComponentFactory.instantiateApplication(CoreComponentFactory.java:52)
07-20 13:10:05.520  5376  5376 E AndroidRuntime:    at android.app.Instrumentation.newApplication(Instrumentation.java:1232)
07-20 13:10:05.520  5376  5376 E AndroidRuntime:    at android.app.LoadedApk.makeApplicationInner(LoadedApk.java:1455)
07-20 13:10:05.520  5376  5376 E AndroidRuntime:    ... 11 more

项目此前在Mac及旧Linux系统可正常运行,全新Linux发行版克隆仓库后出现问题,操作步骤:

  • 克隆Git仓库
  • 执行npm install --save-exact
  • React Native/Android环境配置正确,无相关报错

相关配置文件:

android/app/build.gradle

defaultConfig {
        applicationId "com.myappName"
        minSdkVersion rootProject.ext.minSdkVersion
        targetSdkVersion rootProject.ext.targetSdkVersion
        versionCode 20
        versionName "2.0"
    }

/android/app/src/main/AndroidManifest.xml

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
  package="com.myappName">

    <uses-permission android:name="android.permission.INTERNET" />

    <application
      android:name=".MainApplication"
      android:label="@string/app_name"
      android:icon="@mipmap/ic_launcher"
      android:roundIcon="@mipmap/ic_launcher_round"
      android:allowBackup="false"
      android:theme="@style/AppTheme">
      <activity
        android:name=".MainActivity"
        android:label="@string/app_name"
        android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode"
        android:launchMode="singleTask"
        android:windowSoftInputMode="adjustResize">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
      </activity>
    </application>
</manifest>

使用模拟器:Resizeable API 33 x86_64


解决方案

针对ClassNotFoundException导致的启动崩溃,按以下步骤排查修复:

  1. 清理并重建项目

    • 执行React Native清理:npx react-native clean
    • 进入android目录执行Gradle清理:./gradlew clean
    • 回到根目录重新安装依赖:npm install --save-exact
    • 重新构建运行:npx react-native run-android
  2. 配置Dex分包
    在android/app/build.gradle的android块中添加Dex支持:

    android {
        defaultConfig {
            // 保留原有配置,新增以下行
            multiDexEnabled true
        }
    }
    
    dependencies {
        // 添加multidex依赖
        implementation 'androidx.multidex:multidex:2.0.1'
    }
    

    修改后重新执行清理和构建命令。

  3. 检查文件大小写
    Linux系统区分文件名大小写,确认MainApplication.java/MainApplication.kt文件名与代码中引用一致,且目录结构为android/app/src/main/java/com/myappName/MainApplication,包名和路径完全匹配。

  4. 清除Gradle缓存
    删除本地Gradle缓存目录:rm -rf ~/.gradle/caches,之后重新构建项目,避免缓存导致的构建异常。

  5. 指定ABI支持
    在android/app/build.gradle的defaultConfig中添加ABI配置,确保模拟器的x86_64架构被支持:

    defaultConfig {
        // 保留原有配置,新增以下行
        ndk {
            abiFilters 'x86_64', 'armeabi-v7a', 'arm64-v8a'
        }
    }
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 09:15:41