我在项目中使用<script type="text/javascript" src="https://example.com/myscript.js"></script>
和Dagger
中的代码,并且一起使用MVP
和kotlin
中的代码。
同胞是我的java
:
MainView.kt
下面是我的interface MainView : MessageView, VersionCheckView {
fun showUserStatus(userStatus: UserStatus)
fun setupUserAccountInfo(uiModel: NavHeaderUiModel)
fun setupServerAccountList(serverAccountList: List<Account>)
fun closeServerSelection()
fun invalidateToken(token: String)
fun showProgress()
fun hideProgress()
}
:
presenter
在我的class MainPresenter @Inject constructor(
private val view: MainView,
private val strategy: CancelStrategy,
private val navigator: MainNavigator,
private val tokenRepository: TokenRepository,
private val serverInteractor: GetCurrentServerInteractor,
private val refreshSettingsInteractor: RefreshSettingsInteractor,
private val refreshPermissionsInteractor: RefreshPermissionsInteractor,
private val localRepository: LocalRepository,
private val navHeaderMapper: NavHeaderUiModelMapper,
private val saveAccountInteractor: SaveAccountInteractor,
private val getAccountsInteractor: GetAccountsInteractor,
private val removeAccountInteractor: RemoveAccountInteractor,
private val factory: RocketChatClientFactory,
private val groupedPush: GroupedPush,
dbManagerFactory: DatabaseManagerFactory,
getSettingsInteractor: GetSettingsInteractor,
managerFactory: ConnectionManagerFactory
) :....{
....
}
中,上面的代码工作良好,但是当我在MainActivty.kt
中使用时,出现以下错误:
MainActivityMou.java
下面是.MainView cannot be provided without an @Provides-annotated method.
:
MainModule.kt
我的@Module
class MainModule {
@Provides
@PerActivity
fun provideJob() = Job()
@Provides
@PerActivity
fun provideMainNavigator(activity: MainActivity) = MainNavigator(activity)
@Provides
fun provideMainView(activity: MainActivity): MainView = activity
@Named("MainActivityMou")
@Provides
fun provideMainMOUView(activity: MainActivityMou): MainView = activity
@Provides
fun provideLifecycleOwner(activity: MainActivity): LifecycleOwner = activity
@Provides
fun provideCancelStrategy(owner: LifecycleOwner, jobs: Job): CancelStrategy =
CancelStrategy(owner, jobs)
}
像下面这样:
MainActivityMou.java