目錄:?
? ? ? ? ? ?A:as里面gradle的基本了解,以及配置的區(qū)別
? ? ? ? ? ?B:as and gradle 升級遇到的問題:
? ? ? ? ? ?C:個人的一些感悟總結:
A.gradle版本對應:(Plugin version VS??Gradle version)
可能在這里有同學就迷惑了,plugin version 跟Gradle verion 都是啥玩意呢.他們分別都在as build prject 的時候做了一些什么事兒呢.以為他們對應的規(guī)則.
plugin for gradle version And gradle version 各自的含義
plugin version: 英文給的很直觀:插件的版本,這邊的插件是指 gradle插件的版本,所以標題才是 plugin for gradle version,gradle的插件版本,這邊一般都不會有什么問題,按照上面的圖,對應填上就OK.
gradle version: gradle其實就是用Groovy語言(腳本語言)來編寫的一個構建工具,用來幫我們構造程序,打包,編譯,部署,依賴,簽名..等等..(ps:groovy是一個腳步語言,不要把它跟as或者java混在一起,用groovy也可以寫android代碼...有興趣的同學,可以去了解一下)
plugin for gradle version? And? gradle version 的總結
Gradle 的每個 Android 插件版本(Android Plugin for Gradle)需要與特定的 Gradle 版本相匹配才能編譯成功孽尽。為了獲得最佳性能,應該使用最新版本的 Gradle 和 Android 插件专普。
B::as and gradle 升級遇到的問題:
a:首先升級綜上所有的gradle? and? plugin for gradle(對應版本號,切記!!!)
b:butterknife遇到的問題(version:8.8.1)
解決辦法:把project.build 里面的dependenceis里面的butterknife的版本號改成8.4.0就OK(下面是解決問題鏈接,有興趣多了解一點的朋友可以看看)
c:升級后,gradle給定的一些規(guī)則(會對as的編譯速度,跟寫法有一定的優(yōu)化,具體的去google了解)
compile 替換?buildToolsVersion?
升級(3.1.4之后不需要寫buildToolsVersion,默認是27.0.3)
d:Unable to resolve dependency for ':app@lintOptions/compileClasspath': Could not resolve project
Gradle配置lintOptions - berber78的專欄 - CSDN博客?想了解lintOptions可以看看這個鏈接
e:依然是butterknife的問題.
解決:原因是因為之前用的是8.8.1的butterknife的版本在app.build的里面申請了(如下圖),但是咱們改成8.4.0之后就不需要這個apply了,因為在8.4.0的時候apply過去是找不到的.所以才會報錯,去掉就OK了.不會影響使用(ps:app.build下implementation butterknife的時候可以是8.8.1.只要在project.build改了就ok)
?C:個人的一些感悟總結:
目前我碰到就這些問題,大家有新的問題可以隨時溝通我哈.直接留言就好.我會每天都抽時間關注一下的.
我們升級到3.0之后大部分都會把編譯版本的sdk也升級的到最高,會存在一些android系統(tǒng)兼容的問題,比如android的8.0安裝問題.需要在AndroidManifest.xml中多加入一個權限(如下)
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
以及9.0p版本把javax.crypto.這個api去掉了.如果您項目中用到了,可能會出現(xiàn)一些問題,如果需要找替換辦法請google
最近這一份工作讓我收獲頗多.之后我會陸續(xù)發(fā)一下大家關注的技術來共同學習一下.