提供方法必须返回一个值非空

问题描述

当我尝试使用Dagger 2时,会出现此错误,我应该怎么做,我在Dagger 2中处于新状态

e: /Users/stepanbezhuk/Documents/Work/Rebus/Movie/app/build/tmp/kapt3/stubs/debug/com/popularmovies/movies/Service/MessageWorking.java:11: error: @Provides methods must return a value (not void)
    public final void messageConnected$app_debug(boolean networkStatus) {
 

模块1

 @Module
 open class MessageWorking @Inject constructor(private val context: Context) {

 @Provides
 internal fun messageConnected(networkStatus: Boolean) {
      if (networkStatus) {
          showMessage(message = "Connect")
      } else {
          showMessage(message = "disconnect")
      }
  }

  private fun showMessage(message: String) {
      return Toast.makeText(context,message,Toast.LENGTH_SHORT).show()
  }
}

接口

@Component(modules = arrayOf(MessageWorking::class))

@Singleton
interface DaggerComponent {
    fun messageConnected(networkStatus: Boolean)
}

解决方法

struct ContentView1: View { var body: some View { NavigationLink(destination: DetailView()) { Image("small").customSourceTarget() }.navigationBarTitle("Navigation") } } struct ContentView2: View { var body: some View { Image("large").customTransitionTarget() } } NavigationView { ContentView1() }.customAnimatable() 注释意味着您必须提供一些东西。您在@Provides中没有返回类型。

您正在Dagger(吐司)内做UI东西,这很奇怪,因为Dagger的职责是提供依赖关系。

以下是指向Dagger的简单介绍以及如何设置的链接: https://medium.com/@skshayne/understanding-dagger-as-a-beginner-8ffe29bad429