日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android升级butterknife,Android组件化开发中使用Butterknife的坑

發(fā)布時間:2025/3/15 Android 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android升级butterknife,Android组件化开发中使用Butterknife的坑 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

近來整理代碼的時候,要對代碼做一些模塊化組件化的處理。想要在一個BaseLib里面引入ButterKnife,在這個BaseLib里面聲明一個BaseActivty,然后其他module的Activity里面繼承這個BaseActivity,直接可以使用BindView,沒想到直接報NPE了。

第一反應(yīng)就是把問題google了一下,搜索結(jié)果大多指向了ButterKnife的issue了。然后發(fā)現(xiàn)也有不少人又碰到相似的問題(看著相似其實(shí)又略有不同),按照上面的方法嘗試了幾個發(fā)現(xiàn)都沒有解決這個問題。最終看到有一篇類似的博客,幫忙解決了這個問題。原文鏈接,在此感謝原文作者。

因?yàn)榘凑赵牡奶幚矸椒ㄟ€是碰到了一個小問題,我把這個問題解決了,重新整理了一篇文章。雖然不知道是不是最好的解決方案,那現(xiàn)在就先這樣處理吧。

首先,需要在工程的module聲明:

image.png

repositories {

google()

jcenter()

maven { url "http://objectbox.net/beta-repo/" }

mavenCentral()

maven { url 'https://oss.sonatype.org/content/repositories/snapshots' }

}

dependencies {

classpath 'com.android.tools.build:gradle:3.0.0'

//ObjectBox

classpath "io.objectbox:objectbox-gradle-plugin:$objectboxVersion"

classpath 'com.jakewharton:butterknife-gradle-plugin:9.0.0-SNAPSHOT'

}

然后再baseLib中添加:

apply plugin: 'com.android.library'

apply plugin: 'com.jakewharton.butterknife'

dependencies {

compile rootProject.ext.libButterKnife

}

然后在每一個Module中添加如下引用

apply plugin: 'com.android.library'

apply plugin: 'com.jakewharton.butterknife'

dependencies {

annotationProcessor rootProject.ext.libButterKnifeCompile

}

這樣就可以解決NPE的問題了。

注意, rootProject.ext.libButterKnife, rootProject.ext.libButterKnifeCompile我使用了全局的聲明,如下:

libButterKnife = "com.jakewharton:butterknife:8.8.1"

libButterKnifeCompile = "com.jakewharton:butterknife-compiler:8.8.1"

版本自己更新到需要的版本。

另外,Java代碼中,使用R2代替R,這樣就可以實(shí)現(xiàn)ButterKnife在組件化開發(fā)過程中出現(xiàn)的空指針問題。

如果有其他更好的解決辦法,也請留下您的方法,感謝。

總結(jié)

以上是生活随笔為你收集整理的Android升级butterknife,Android组件化开发中使用Butterknife的坑的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。