亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > 綜合 > 正文

Kotlin中使用Dagger2可能遇到的坑解決

2024-07-21 23:03:40
字體:
來源:轉載
供稿:網友

Dagger2是什么?

Dagger2是一款基于Java注解,在編譯階段完成依賴注入的開源庫,主要用于模塊間解耦,方便進行測試。

一、Kotlin Dagger2 配置

build.gradle

apply plugin: 'com.android.library'apply plugin: 'kotlin-android'apply plugin: 'kotlin-kapt'...dependencies {... //dagger2  compile rootProject.ext.dependencies["dagger"] kapt rootProject.ext.apt["dagger-compiler"] //dagger2 android 一個dagger2 關于Android的增強庫 可選項 compile rootProject.ext.dependencies["dagger-android"] //可選項 compile rootProject.ext.dependencies["dagger-android-support"] //可選項 kapt rootProject.ext.apt["dagger-android-processor"]}

AppComponent

@Singleton@Component(modules = arrayOf(AppModule::class))interface AppComponent { fun inject(app: BaseApplication)}

AppModule

@Moduleclass AppModule(val app: Application) { @Provides @Singleton fun provideApplication() = app}

Application

class BaseApplication : Application() { override fun onCreate() {  super.onCreate()  initApplication()  DaggerCoreComponent    .builder()    .coreModule(CoreModule(this))    .build(); }}

以上配置完成,就可以愉快的在Kotlin中使用Dagger2了。

二、Kotlin使用Dagger2遇到的坑

當時我想將presenter注入到Activity中,代碼如下,make Projiect的時候不通過 百思不得其解

坑1

class MainActivity : AppCompatActivity() ,MainContract.View { @Inject var mPresenter : MainContract.Presenter ? = null override fun onCreate(savedInstanceState: Bundle?) { //******// super.onCreate(savedInstanceState) DaggerMainActivityComponent.builder().build().inject(this) mPresenter?.subscribe() } @Module inner class PresenterModules { @Provides fun providePresenter(): MainContract.Presenter {  return MainPresenter(this@MainActivity) } }}@Component(modules = arrayOf(MainActivity.PresenterModules::class))interface MainActivityComponent { fun inject(activity: MainActivity)}

然后我將kotlin 代碼 轉成字節碼后再轉成java代碼,發現Presenter是私有的.

而我們都知道,注入的對象不可以是私有的

public final class MainActivity extends AppCompatActivity implements View { @Inject @Nullable private Presenter mPresenter;-----省略}
//于是將上述代碼改成 @Inject @JvmField var mPresenter : MainContract.Presenter ? = null//或則@Injectlateinit mPresenter : MainContract.Presenter

即可編譯成功

坑2

 @Inject @JvmField// @Named("preneter")// 錯誤 正確的做法如下  @field:[Named("preneter")] var mPresenter : MainContract.Presenter ? = null
 @Module inner class PresenterModules { @Provides @Named("preneter") fun providePresenter(): MainContract.Presenter {  return MainPresenter(this@MainActivity) } @Provides @Named("hello") fun provide():String{  return "hello" } }

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對VeVb武林網的支持。


注:相關教程知識閱讀請移步到kotlin教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美国产日产韩国视频| 国产欧美久久一区二区| 91麻豆桃色免费看| 欧美性开放视频| 色老头一区二区三区在线观看| 高清一区二区三区四区五区| 国a精品视频大全| 成人黄色在线观看| 久久久久亚洲精品| 欧美成人全部免费| 九九热精品视频在线播放| 国内精品美女av在线播放| 欧美日在线观看| 精品视频在线播放| 日本免费久久高清视频| 国产精品久久久久久久午夜| 欧美国产第二页| 国产69久久精品成人| 久久天堂电影网| 国产亚洲欧洲高清一区| 日韩电视剧在线观看免费网站| 欧美国产亚洲精品久久久8v| 色妞欧美日韩在线| 国产精品嫩草影院久久久| 国产精品99一区| 日韩欧美在线播放| 欧美肥老太性生活视频| 欧美极度另类性三渗透| 精品亚洲aⅴ在线观看| 久久精品国产一区二区三区| 亚洲第一中文字幕| 日韩中文在线中文网三级| 91豆花精品一区| 一本大道久久加勒比香蕉| 亚洲色图色老头| 亚洲精品狠狠操| 日本中文字幕成人| 国产精品一区久久久| 欧美综合第一页| 日本精品一区二区三区在线| 中文字幕精品—区二区| 92版电视剧仙鹤神针在线观看| 91国内免费在线视频| 欧美性xxxxxxxxx| 欧美成人在线免费视频| 久久精品久久久久久| 2018中文字幕一区二区三区| 久久免费视频在线观看| 精品美女国产在线| 日韩电影第一页| 欧美日韩国产精品一区二区不卡中文| 欧美日韩美女在线| 日韩视频在线一区| 亚洲欧洲日产国码av系列天堂| 久久夜精品香蕉| 成人国内精品久久久久一区| 亚洲欧美国产精品久久久久久久| 日韩精品有码在线观看| 国产精品一区二区三区久久| 亚洲精品免费网站| 中文字幕亚洲专区| 亚洲偷欧美偷国内偷| 欧美日韩福利在线观看| 国产成人福利视频| 亚洲香蕉伊综合在人在线视看| 亚洲成人黄色在线| 裸体女人亚洲精品一区| 日本久久中文字幕| 国产欧美日韩亚洲精品| 国产精品偷伦免费视频观看的| 热久久美女精品天天吊色| 精品中文字幕久久久久久| 日韩精品视频在线免费观看| 国产日韩欧美黄色| 亚洲精品日韩激情在线电影| 欧美俄罗斯乱妇| 亚洲精品资源美女情侣酒店| 国产欧美在线播放| 国产成人精品最新| 91精品国产色综合| 日韩av在线天堂网| 一区二区三区四区视频| 亚洲自拍在线观看| 91精品国产综合久久香蕉的用户体验| 欧美日韩人人澡狠狠躁视频| 国产免费亚洲高清| 国产精品久久一| 欧美国产日本在线| 成人h猎奇视频网站| 日韩电影免费在线观看中文字幕| 欧美性xxxx在线播放| 国产69久久精品成人看| 91精品国产综合久久香蕉的用户体验| 91久久在线观看| 欧美大成色www永久网站婷| 69影院欧美专区视频| 欧美特级www| 91在线播放国产| 日韩专区在线播放| 日韩电影中文字幕在线观看| 国产精品美女在线| 日本久久久久亚洲中字幕| 欧美极品美女视频网站在线观看免费| 亚洲午夜久久久久久久| 亚洲第一精品久久忘忧草社区| 裸体女人亚洲精品一区| 国产精品国产三级国产专播精品人| 91chinesevideo永久地址| 久久久av网站| 亚洲午夜激情免费视频| 国产suv精品一区二区三区88区| 欧美性视频精品| 亚洲图中文字幕| 国产精品91一区| 午夜欧美不卡精品aaaaa| 国产欧美亚洲精品| 国产精品久久久久久久7电影| 日韩在线播放av| 国产精品国产自产拍高清av水多| 日韩精品在线看| 国内精品免费午夜毛片| 91免费国产视频| 91黑丝在线观看| 97高清免费视频| 国产欧美日韩综合精品| 国产日本欧美一区二区三区在线| 国产成人一区二区在线| 国产欧美精品一区二区| 亚洲黄色av网站| 国外成人在线播放| 亚洲欧洲自拍偷拍| 久久视频在线看| 欧美中文在线观看国产| 欧美激情videoshd| 中文日韩电影网站| 成人精品一区二区三区| 亚洲综合在线中文字幕| 国模吧一区二区| 国产精品人人做人人爽| 久久99精品视频一区97| 日本欧美一级片| 日韩av中文字幕在线| 亚洲人成电影网站色xx| 亚洲色图35p| 欧美一级黑人aaaaaaa做受| 久久久久久久91| 日韩成人中文字幕在线观看| 92福利视频午夜1000合集在线观看| 国产又爽又黄的激情精品视频| 国产精品扒开腿爽爽爽视频| 亚洲在线免费观看| 国产精品日韩电影| 成人精品福利视频| 久久久噜噜噜久噜久久| 亚洲精品白浆高清久久久久久| 久久久久久91香蕉国产| 亚洲www视频| 亚洲小视频在线| 日日摸夜夜添一区| 91av在线播放视频| 欧美一级大胆视频| 欧洲亚洲免费视频| 国产一区二区视频在线观看| 国产成人精品av|