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

Android开发求助:无法实例化MainActivity类报错

MainActivity类无法实例化问题解决建议

针对ClassNotFoundException: com.example.trinity.MainActivity的问题,可按以下步骤排查:

  • 确认Kotlin编译配置:检查项目根目录build.gradle是否添加Kotlin插件依赖,模块build.gradle是否应用kotlin-android插件并引入Kotlin标准库依赖
  • 清理重建项目:执行Build > Clean Project后再Build > Rebuild Project,或运行命令:
    ./gradlew clean assembleDebug
    
  • 检查多Dex配置:若项目方法数超过限制,需开启多Dex:
    1. 在模块build.gradle中添加:
      android {
          defaultConfig {
              multiDexEnabled true
          }
      }
      dependencies {
          implementation 'androidx.multidex:multidex:2.0.1'
      }
      
    2. 自定义Application类继承MultiDexApplication,或在attachBaseContext中调用MultiDex.install(this)
  • 验证文件路径:确认MainActivity.kt位于src/main/java/com/example/trinity/目录下,包声明与目录结构一致
  • 禁用Instant Run:关闭Android Studio的File > Settings > Build, Execution, Deployment > Instant Run选项,避免编译缓存异常

报错日志

2024-08-16 10:09:32.616 12426-12426 Perf                    com.example.trinity                  I  Connecting to perf service.
2024-08-16 10:09:32.627 12426-12426 NetworkSecurityConfig   com.example.trinity                  D  No Network Security Config specified, using platform default
2024-08-16 10:09:32.628 12426-12426 NetworkSecurityConfig   com.example.trinity                  D  No Network Security Config specified, using platform default
2024-08-16 10:09:32.672 12426-12426 AndroidRuntime          com.example.trinity                  D  Shutting down VM
2024-08-16 10:09:32.675 12426-12426 AndroidRuntime          com.example.trinity                  E  FATAL EXCEPTION: main
                                                                                                    Process: com.example.trinity, PID: 12426
                                                                                                    java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.example.trinity/com.example.trinity.MainActivity}: java.lang.ClassNotFoundException: Didn't find class "com.example.trinity.MainActivity" on path: DexPathList[[dex file "/data/data/com.example.trinity/code_cache/.overlay/base.apk/classes2.dex", zip file "/data/app/~~WP34l6wTvfxbOfRYYsDk1Q==/com.example.trinity-PS3ZXKkvRmSoCA3AWdKSzg==/base.apk"],nativeLibraryDirectories=[/data/app/~~WP34l6wTvfxbOfRYYsDk1Q==/com.example.trinity-PS3ZXKkvRmSoCA3AWdKSzg==/lib/arm64, /system/lib64, /system/system_ext/lib64]]
                                                                                                        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3346)
                                                                                                        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3594)
                                                                                                        at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:85)
                                                                                                        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:2067)
                                                                                                        at android.os.Handler.dispatchMessage(Handler.java:106)
                                                                                                        at android.os.Looper.loop(Looper.java:223)
                                                                                                        at android.app.ActivityThread.main(ActivityThread.java:7698)
                                                                                                        at java.lang.reflect.Method.invoke(Native Method)
                                                                                                        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
                                                                                                        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:952)
                                                                                                    Caused by: java.lang.ClassNotFoundException: Didn't find class "com.example.trinity.MainActivity" on path: DexPathList[[dex file "/data/data/com.example.trinity/code_cache/.overlay/base.apk/classes2.dex", zip file "/data/app/~~WP34l6wTvfxbOfRYYsDk1Q==/com.example.trinity-PS3ZXKkvRmSoCA3AWdKSzg==/base.apk"],nativeLibraryDirectories=[/data/app/~~WP34l6wTvfxbOfRYYsDk1Q==/com.example.trinity-PS3ZXKkvRmSoCA3AWdKSzg==/lib/arm64, /system/lib64, /system/system_ext/lib64]]
                                                                                                        at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:207)
                                                                                                        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:1254)
                                                                                                        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3334)
                                                                                                        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3594) 
                                                                                                        at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:85) 
                                                                                                        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:2067) 
                                                                                                        at android.os.Handler.dispatchMessage(Handler.java:106) 
                                                                                                        at android.os.Looper.loop(Looper.java:223) 
                                                                                                        at android.app.ActivityThread.main(ActivityThread.java:7698) 
                                                                                                        at java.lang.reflect.Method.invoke(Native Method) 
                                                                                                        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592) 
                                                                                                        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:952) 
2024-08-16 10:09:32.698 12426-12426 Process                 com.example.trinity                  I  Sending signal. PID: 12426 SIG: 9

AndroidManifest.xml文件

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.trinity"
    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: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/Theme.Trinity"
        tools:targetApi="31">
        <activity
            android:name="com.example.trinity.MainActivity"
            android:exported="true"
            android:label="@string/app_name"
            android:theme="@style/Theme.Trinity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

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

MainActivity.kt文件

import android.os.Bundle
import android.widget.Button
import android.widget.EditText
import android.widget.TextView
import androidx.appcompat.app.AppCompatActivity
import kotlinx.coroutines.*
import com.example.trinity.R
import com.example.trinity.ApiHelper
import java.io.File

class MainActivity : AppCompatActivity() {
    private lateinit var editTextQuery: EditText
    private lateinit var buttonSend: Button
    private lateinit var textViewResponse: TextView

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        editTextQuery = findViewById(R.id.editTextQuery)
        buttonSend = findViewById(R.id.buttonSend)
        textViewResponse = findViewById(R.id.textViewResponse)

        buttonSend.setOnClickListener {
            GlobalScope.launch(Dispatchers.IO) {
                val file = File("/home/shubham/Desktop/otto_book.pdf")
                val fileId = ApiHelper.uploadFile(file)?.let { ApiHelper.createAssistant(it) }
                val responseMessage = fileId?.let { ApiHelper.sendMessage(it, editTextQuery.text.toString()) }

                withContext(Dispatchers.Main) {
                    textViewResponse.text = responseMessage
                }
            }
        }
    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 16:05:56