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

Android应用启动报错:ClassNotFoundException引发RuntimeException求解决

启动时ClassNotFoundException导致RuntimeException的解决方案

报错日志

FATAL EXCEPTION: main
Process: com.example.mquran, PID: 15561
java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.example.mquran/com.example.mquran.QuranActivity}: java.lang.ClassNotFoundException: Didn't find class "com.example.mquran.QuranActivity" on path: DexPathList[[zip file "/data/app/~~hynbSxiLbBBszkZOGN7mmw==/com.example.mquran-lzohw1JV0FF52fn5hJr6Cg==/base.apk"],nativeLibraryDirectories=[/data/app/~~hynbSxiLbBBszkZOGN7mmw==/com.example.mquran-lzohw1JV0FF52fn5hJr6Cg==/lib/arm64, /system/lib64, /system/system_ext/lib64]]
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3914)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:4201)
    at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:103)
    at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
    at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2438)
    at android.os.Handler.dispatchMessage(Handler.java:106)
    at android.os.Looper.loopOnce(Looper.java:226)
    at android.os.Looper.loop(Looper.java:313)
    at android.app.ActivityThread.main(ActivityThread.java:8663)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:567)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1135)
Caused by: java.lang.ClassNotFoundException: Didn't find class "com.example.mquran.QuranActivity" on path: DexPathList[[zip file "/data/app/~~hynbSxiLbBBszkZOGN7mmw==/com.example.mquran-lzohw1JV0FF52fn5hJr6Cg==/base.apk"],nativeLibraryDirectories=[/data/app/~~hynbSxiLbBBszkZOGN7mmw==/com.example.mquran-lzohw1JV0FF52fn5hJr6Cg==/lib/arm64, /system/lib64, /system/system_ext/lib64]]
    at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:218)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
    at android.app.AppComponentFactory.instantiateActivity(AppComponentFactory.java:95)
    at androidx.core.app.CoreComponentFactory.instantiateActivity(CoreComponentFactory.java:44)
    at android.app.Instrumentation.newActivity(Instrumentation.java:1273)
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3901)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:4201) 
    at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:103) 
    at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135) 
    at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95) 
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2438) 
    at android.os.Handler.dispatchMessage(Handler.java:106) 
    at android.os.Looper.loopOnce(Looper.java:226) 
    at android.os.Looper.loop(Looper.java:313) 
    at android.app.ActivityThread.main(ActivityThread.java:8663) 
    at java.lang.reflect.Method.invoke(Native Method) 
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:567) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1135) 
2024-01-02 03:17:22.209 15561-15653 libEGL                  com.example.mquran              

Manifest文件内容

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

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

    <application
        android:allowBackup="true"
        android:dataExtractionRules="@xml/data_extraction_rules"
        android:exported="true"
        android:fullBackupContent="@xml/backup_rules"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme"
        tools:targetApi="34">

        <activity
            android:name=".QuranActivity"
            android:exported="true"
            android:label="@string/app_name"
            android:theme="@style/AppTheme">

            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
</manifest>

解决方案

  • 核对类文件路径与包名:确认QuranActivity.java的实际包名是com.example.mquran,文件放置在src/main/java/com/example/mquran/目录下,检查类名拼写(大小写、字母是否有误)。
  • 清理重建项目:执行Build -> Clean Project,再执行Build -> Rebuild Project,手动删除项目根目录下的build文件夹和生成的.apk文件,清除构建缓存。
  • 配置MultiDex:如果项目开启了MultiDex,确保app/build.gradle中正确配置:
    android {
        defaultConfig {
            multiDexEnabled true
        }
    }
    dependencies {
        implementation 'androidx.multidex:multidex:2.0.1'
    }
    
    同时自定义Application类继承MultiDexApplication,或在attachBaseContext方法中调用MultiDex.install(this)。
  • 检查构建目录标记:确认Android Studio中Module的java目录被标记为Sources Root(蓝色文件夹),未被排除在构建范围外。
  • 调整混淆规则:若开启了代码混淆,在proguard-rules.pro中添加规则避免QuranActivity被混淆:
    -keep class com.example.mquran.QuranActivity { *; }
    
  • 核对设备架构支持:日志显示设备架构为arm64,若项目包含Native库,确认build.gradle中ndk.abiFilters包含arm64-v8a,或移除架构限制兼容更多设备。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 05:35:57