kotlin日志
仅在项目或者demo中遇到的问题,做此笔记而已,不喜勿喷!!
提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档
一、遇到的问题?
Hilt Activity must be attached to an @HiltAndroidApp Application. 错误代码如下:
2021-07-01 09:53:04.356 30141-30141/com.muf E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.muf, PID: 30141
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.muf/com.muf.MainActivity}: java.lang.IllegalStateException: Hilt Activity must be attached to an @HiltAndroidApp Application. Did you forget to specify your Application's class name in your manifest's <application />'s android:name attribute?
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3543)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3695)
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:83)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:151)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:111)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2248)
at android.os.Handler.dispatchMessage(Handler.java:107)
at android.os.Looper.loop(Looper.java:238)
at android.app.ActivityThread.main(ActivityThread.java:7823)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:532)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1028)
Caused by: java.lang.IllegalStateException: Hilt Activity must be attached to an @HiltAndroidApp Application. Did you forget to specify your Application's class name in your manifest's <application />'s android:name attribute?
at dagger.hilt.android.internal.managers.ActivityComponentManager.createComponent(ActivityComponentManager.java:76)
at dagger.hilt.android.internal.managers.ActivityComponentManager.generatedComponent(ActivityComponentManager.java:66)
at com.muf.Hilt_MainActivity.generatedComponent(Hilt_MainActivity.java:42)
at com.muf.Hilt_MainActivity.inject(Hilt_MainActivity.java:64)
at com.muf.Hilt_MainActivity.onCreate(Hilt_MainActivity.java:36)
at com.muf.MainActivity.onCreate(MainActivity.kt:12)
at android.app.Activity.performCreate(Activity.java:7990)
at android.app.Activity.performCreate(Activity.java:7979)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1306)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3514)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3695)
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:83)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:151)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:111)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2248)
at android.os.Handler.dispatchMessage(Handler.java:107)
at android.os.Looper.loop(Looper.java:238)
at android.app.ActivityThread.main(ActivityThread.java:7823)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:532)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1028)
二、解决办法
1.分析
根据错误代码日志,从这以下代码中可以看出。
Caused by: java.lang.IllegalStateException: Hilt Activity must be attached to an @HiltAndroidApp Application. Did you forget to specify your Application's class name in your manifest's <application />'s android:name attribute?
2.解决
自定义application,并在清单文件中使用即可解决
@HiltAndroidApp
class MainApplication: Application() {
}