1. 程式人生 > >解決gradle更新後導致app中引用不到module下的jar包問題

解決gradle更新後導致app中引用不到module下的jar包問題

    博主最近拿到一個二次開發的專案。公司以前這個專案是外包出去的,外包做的,大家也知道外包怎麼工作的,四個字形容就是快速開發,那麼就有些問題,很多東西框架比較落伍過時,拿到手改掉網路框架,不支援ip的反向代理於是從底層換掉網路框架,哎,難為我這個菜雞了,然後我發現gradle外掛還是2.2.3的版本於是更新了下,更了最新的3.1.2於是除了很多問題。

    1、最近的會提示你compile過時,不推薦使用,推薦你使用implementation

    2、提示androidTestCompile過時,推薦使用androidTestImplementation

   3、如果你使用了butterknife外掛的話,程式碼會報錯找到這個jar包,為什麼呢?在gradle 3.0以後不推薦使用這個外掛“com.neenbedankt.android-apt”解決這個問題需要兩步:

        第一、程式碼中刪除專案的刪除專案中build.gradle下的apply plugin: 'com.neenbedankt.android-apt'和app下build.gradle的apt 'com.jakewharton:butterknife-compiler:8.6.0'。

            第二:把dependencies下的apt改為annotationProcessor即可別忘了匯入butterknife包 

compile 'com.jakewharton:butterknife:8.6.0'
 annotationProcessor 'com.jakewharton:butterknife-compiler:8.6.0'

    4、當你改完gradle外掛版本後會提示你gradle最低支援版本是***,去官網下載最新的gradle版本放在你的gradle本地目錄即可。

    但是你會發現當你做了以上幾步後你會發現你可能會出現一個問題,比如說在module中你匯入了***.jar或者線上的包,以gson為例,你不會再app下再次匯入,再次匯入可能會出現重複等一些問題,一個就夠了,但是你會發現你要使用gson的時候你卻找到gson,會提示你add library/*****.jar 一大串,你回車一下或者點一下沒反應,根本沒有用,那麼問題出在哪呢?

    你需要這樣解決:

    把module下的implementation改為api即可,因為implementation 修飾的只能在當前module中引用,你在app下是引用不了的,你改完重新編譯下即可。