Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 刀柄特定特征依赖_Android_Dagger 2_Dagger Hilt - Fatal编程技术网

Android 刀柄特定特征依赖

Android 刀柄特定特征依赖,android,dagger-2,dagger-hilt,Android,Dagger 2,Dagger Hilt,我试图将它注入其他片段,但它不起作用。我的目标是制作特性方面的组件,以便只有这些与特定特性相关的片段才能获得依赖性。 刀柄要求每个模块使用安装注释,如果我想将刀柄安装到我的自定义组件上,是否可能。您想使用[dagger-Hilt]或[dagger-2]?我想使用刀柄您想使用[dagger-Hilt]或[dagger-2]吗?我想使用刀柄 @Module(includes = [AuthModule.ViewModel::class, AuthModule.UseCase::class, Auth

我试图将它注入其他片段,但它不起作用。我的目标是制作特性方面的组件,以便只有这些与特定特性相关的片段才能获得依赖性。
刀柄要求每个模块使用安装注释,如果我想将刀柄安装到我的自定义组件上,是否可能。

您想使用[dagger-Hilt]或[dagger-2]?我想使用刀柄您想使用[dagger-Hilt]或[dagger-2]吗?我想使用刀柄
@Module(includes = [AuthModule.ViewModel::class, AuthModule.UseCase::class, AuthModule.Api::class, AuthModule.Repository::class, AuthModule.Interactor::class])
@InstallIn(ActivityComponent::class)
class AuthModule {
    @Module
    @InstallIn(ActivityComponent::class)
    class ViewModel() {
        @Provides
        fun providesRegisterViewModel(activity:FragmentActivity): RegisterViewModel {
            val registerViewModel = ViewModelProvider(activity).get(RegisterViewModel::class.java)
            return registerViewModel
        }
    }

    @Module
    @InstallIn(ActivityComponent::class)
    class UseCase {
        @Provides
        fun providesRegisterationUseCase(registrationApi: RegistrationApi, userRepository: UserRepository): RegistrationUsecase {
            val registrationUsecase = RegistrationUsecase(registrationApi, userRepository)
            return registrationUsecase
        }
    }


    @Module
    @InstallIn(ActivityComponent::class)
    class Api {
        @Provides
        fun provideRegistrationApi(retrofit: Retrofit): RegistrationApi {
            val registrationService = retrofit.create(RegistrationService::class.java)
            return RegistrationApi(registrationService)
        }
    }


    @Module
    @InstallIn(ActivityComponent::class)
    class Repository {
        @Provides
        fun provideUserRepository(realm: Realm): UserRepository = UserRepository(realm)
    }

    @Module
    @InstallIn(ActivityComponent::class)
    class Interactor {
        @Provides
        fun provideSignInInteractor(registerViewModel: RegisterViewModel): SignInInteractor = SignInInteractor(registerViewModel)
    }
}

@Component(modules = [AuthModule::class])
interface AuthComponent {

    fun inject(signInFragment: SignInFragment)

    @Component.Builder
    interface Builder {
        fun activity(@BindsInstance fragmentActivity: FragmentActivity): Builder
        fun build(): AuthComponent
    }
}

class SignInFragment : Fragment() {
    @Inject lateinit var signInInteractor:SignInInteractor
    private lateinit var fragmentSignInBinding: FragmentSignInBinding

    override fun onCreate(savedInstanceState: Bundle?) {
        DaggerAuthModuleComponent.builder()
                .activity(requireActivity()).build().inject(this)
        super.onCreate(savedInstanceState)
    }