导航到动态特征模块时无法启动活动 ComponentInfo

问题描述 投票:0回答:0

当我尝试导航到动态模块中的活动时应用程序崩溃,但在导航到同一模块中的活动时效果很好。

附:

  • 应用程序(应用程序模块)已经带有
    @HiltAndroidApp
    注释;
  • 所有活动都添加到各自的清单中;
  • 使用 hilt gradle 插件和 kotlin kapt;
  • Hilt 版本 2.45;

问题出现在运行时。当用户触发下面的 setOnClickListener 时。有人知道我的代码有什么问题吗?

导航在哪里(App模块)

binding.button.setOnClickListener {
     activity?.let {
          val intent = Intent().setClassName(it, "br.com.tasks.TasksActivity")
          startActivity(intent)
     }
}

TasksActivity(动态特征模块)

@AndroidEntryPoint
class TasksActivity: AppCompatActivity() {

    private val binding by lazy { ActivityTasksBinding.inflate(layoutInflater) }

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(binding.root)
    }

}

堆栈跟踪

E/AndroidRuntime: FATAL EXCEPTION: main
    Process: br.com.lucas.todo, PID: 14232
    java.lang.RuntimeException: Unable to start activity ComponentInfo{br.com.lucas.todo/br.com.tasks.TasksActivity}: java.lang.ClassCastException: br.com.lucas.todo.DaggerAppApplication_HiltComponents_SingletonC$ActivityCImpl cannot be cast to br.com.tasks.TasksActivity_GeneratedInjector
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3270)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3409)
        at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:83)
        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:2016)
        at android.os.Handler.dispatchMessage(Handler.java:107)
        at android.os.Looper.loop(Looper.java:214)
        at android.app.ActivityThread.main(ActivityThread.java:7356)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930)
     Caused by: java.lang.ClassCastException: br.com.lucas.todo.DaggerAppApplication_HiltComponents_SingletonC$ActivityCImpl cannot be cast to br.com.tasks.TasksActivity_GeneratedInjector
        at br.com.tasks.Hilt_TasksActivity.inject(Hilt_TasksActivity.java:67)
        at br.com.tasks.Hilt_TasksActivity$1.onContextAvailable(Hilt_TasksActivity.java:38)
        at androidx.activity.contextaware.ContextAwareHelper.dispatchOnContextAvailable(ContextAwareHelper.java:99)
        at androidx.activity.ComponentActivity.onCreate(ComponentActivity.java:362)
        at androidx.fragment.app.FragmentActivity.onCreate(FragmentActivity.java:216)
        at androidx.appcompat.app.AppCompatActivity.onCreate(AppCompatActivity.java:115)
        at br.com.tasks.TasksActivity.onCreate(TasksActivity.kt:14)
        at android.app.Activity.performCreate(Activity.java:7802)
        at android.app.Activity.performCreate(Activity.java:7791)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1299)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3245)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3409) 
        at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:83) 
        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:2016) 
        at android.os.Handler.dispatchMessage(Handler.java:107) 
        at android.os.Looper.loop(Looper.java:214) 
        at android.app.ActivityThread.main(ActivityThread.java:7356) 
        at java.lang.reflect.Method.invoke(Native Method) 
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930) 
I/Process: Sending signal. PID: 14232 SIG: 9

android kotlin module android-navigation dagger-hilt
© www.soinside.com 2019 - 2024. All rights reserved.