Android ARouter 集成 注意點(diǎn)(Kotlin)

相關(guān)配置 及引用版本

  • Arouter 版本配置
#Arouter
arouter_group=com.alibaba
arouter_api_version=1.3.1
arouter_compiler_version=1.1.4
arouter_register_version=1.0.2

  • 項(xiàng)目Gradle
        ...
apply plugin: 'com.alibaba.arouter'

buildscript {
         ...
    dependencies {
         ...

        classpath "$kotlin_group:kotlin-gradle-plugin:$kotlin_version"
        classpath "$arouter_group:arouter-register:$arouter_register_version"

         ...
    }
}

...
  • Module 的 gradle 配置
apply plugin: 'com.android.library'

apply plugin: 'kotlin-android'

apply plugin: 'kotlin-kapt'

      ...

kapt {
    arguments {
        arg("moduleName", project.getName())
    }
}

dependencies {
    ...

    //ARouter
    api "$arouter_group:arouter-api:$arouter_api_version"
    kapt "$arouter_group:arouter-compiler:$arouter_compiler_version"

    ...
}

注意點(diǎn):

1.使用@Autowired 注解時(shí), 必須要在對(duì)應(yīng)的Activity中 調(diào)用 ARouter.getInstance().inject(this);
2.Kotlin 代碼編寫的項(xiàng)目 在 @Autowired 標(biāo)注的變量上, 還需要添加注解 @JvmField

示例代碼

@Route(path = ICommBizConstants.IRouter.PATH_RELATE_INFO)
class RelatedInfoActivity : BaseActivity() {

    @JvmField
    @Autowired(name = ICommBizConstants.IParams.PARAMS_REQ_ID)
    var reqId: String? = null

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        ARouter.getInstance().inject(this);

    }
}

排查點(diǎn):

1.清理本地緩存,然后重新編譯(大部分情況都是緩存的問題)
2.App層 是否引入了對(duì)應(yīng)的module
3.檢查build->generated->source->apt(kapt)是否生成了對(duì)應(yīng)的映射
4.檢查每個(gè)gradle 中是否正確配置了 相應(yīng)庫的 引用.
5.檢查 moduleName 是否正確配置
6.檢查 不同module 中 activity 或者 fragment 的path 或者 group 是否有錯(cuò)誤
7.檢查使用 @Autowired標(biāo)示的變量,是否是在 ARouter.getInstance().inject(this); 之前調(diào)用的(Activity 封裝過的 特別要注意)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • 組件化 模塊化、組件化與插件化 在項(xiàng)目發(fā)展到一定程度,隨著人員的增多,代碼越來越臃腫,這時(shí)候就必須進(jìn)行模塊化的拆分...
    silentleaf閱讀 4,966評(píng)論 2 12
  • 1. App項(xiàng)目組件化 做移動(dòng)開發(fā)的同學(xué)都會(huì)發(fā)現(xiàn)這兩年在移動(dòng)開發(fā)圈子里最火的就是組件化了,組件化不同的實(shí)現(xiàn)方案也引...
    monkey01閱讀 10,655評(píng)論 6 56
  • 作為一名大二的學(xué)長學(xué)姐,想要在這里給已經(jīng)成為新生的你們提供一些簡(jiǎn)單的幫助,并且這讓我感到榮幸。 你們初來乍到一個(gè)陌...
    會(huì)發(fā)聲的知了閱讀 406評(píng)論 0 1
  • 還沒結(jié)婚的時(shí)候,小櫻就知道阿峰有個(gè)紅顏知己的好朋友,那個(gè)女孩叫小A,是他的小學(xué)同學(xué),已經(jīng)結(jié)婚了,用阿峰的話說,她們...
    陶都小愛閱讀 465評(píng)論 8 1
  • 石林歷來就有“天下第一奇觀”的美稱。 一進(jìn)入景區(qū),眼前的美景馬上把我吸引住了。奇峰怪石,縱橫交錯(cuò),綠樹紅花,相互映...
    魔道之玉閱讀 519評(píng)論 0 0