@EntryPoint MainActivity 也必须用@Installin 注解
@EntryPoint MainActivity must also be annotated with @Installin
我一直在 Dagger-Hilt 上收到这个错误,我不知道为什么,我什至降级到一个简单的项目,看看我是否能找到我的问题,但显然我做的一切都是正确的。我创建了应用程序 class,在 Manifest 文件中声明它,创建了一个提供字符串的模块,当我尝试将它注入主 activity 时出现错误,错误显示“D :\Programacion\Kotlin\TryingHilt\app\build\tmp\kapt3\stubs\debug\com\y4kuzabanzai\tryinghilt\MainActivity.java:7: 错误: [刀柄]
public 最终 class MainActivity 扩展 androidx.appcompat.app.AppCompatActivity {
^
@EntryPoint com.y4kuzabanzai.tryinghilt.MainActivity 也必须用@InstallIn 注解
[Hilt] 处理未完成。有关详细信息,请参阅上面的错误。"
这是我的代码:
申请Class
@HiltAndroidApp
class MyApp : Application() {
}
模块class
@Module
@InstallIn(ApplicationComponent::class)
class TestModule {
@Singleton
@Provides
fun providesString(): String {
return "Something"
}
}
主要活动Class
@EntryPoint
class MainActivity : AppCompatActivity() {
@Inject
lateinit var injectedString: String
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
Log.d("MyTag", "onCreate: $injectedString")
}
}
你应该 @AndroidEntryPoint
这里 activity。 @Entrypoint
用于一些不同的目的,它不是正确的用途。
@AndroidEntryPoint
class MainActivity : AppCompatActivity() {
@Inject
lateinit var injectedString: String
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
Log.d("MyTag", "onCreate: $injectedString")
}
}
我一直在 Dagger-Hilt 上收到这个错误,我不知道为什么,我什至降级到一个简单的项目,看看我是否能找到我的问题,但显然我做的一切都是正确的。我创建了应用程序 class,在 Manifest 文件中声明它,创建了一个提供字符串的模块,当我尝试将它注入主 activity 时出现错误,错误显示“D :\Programacion\Kotlin\TryingHilt\app\build\tmp\kapt3\stubs\debug\com\y4kuzabanzai\tryinghilt\MainActivity.java:7: 错误: [刀柄] public 最终 class MainActivity 扩展 androidx.appcompat.app.AppCompatActivity { ^ @EntryPoint com.y4kuzabanzai.tryinghilt.MainActivity 也必须用@InstallIn 注解 [Hilt] 处理未完成。有关详细信息,请参阅上面的错误。"
这是我的代码:
申请Class
@HiltAndroidApp
class MyApp : Application() {
}
模块class
@Module
@InstallIn(ApplicationComponent::class)
class TestModule {
@Singleton
@Provides
fun providesString(): String {
return "Something"
}
}
主要活动Class
@EntryPoint
class MainActivity : AppCompatActivity() {
@Inject
lateinit var injectedString: String
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
Log.d("MyTag", "onCreate: $injectedString")
}
}
你应该 @AndroidEntryPoint
这里 activity。 @Entrypoint
用于一些不同的目的,它不是正确的用途。
@AndroidEntryPoint
class MainActivity : AppCompatActivity() {
@Inject
lateinit var injectedString: String
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
Log.d("MyTag", "onCreate: $injectedString")
}
}