前言
今天下午的時(shí)候有人問到,AS 哪里能配置 build.gradle 的模板,從而達(dá)到每次新建 module 時(shí)默認(rèn)的 compileSdkVersion 用指定的值而不是取最新 SDK 的 api-string。
解決方案
先看了 Preferences,并沒相關(guān)的 template 能修改 build.gradle,再 Google 了一會(huì),只有該帖子提及到 build.gradle 的模板文件的位置。
按照給出的路徑 <android-studio>/plugins/android/lib/templates/gradle-projects/NewAndroidProject/root/build.gradle.ftl(Mac 上 <android-studio> 即為 /Applications/Android/ Studio.app/Contents)找到模板文件。
直接找到 compileSdkVersion 一行
compileSdkVersion <#if buildApiString?matches("^//d+$")>${buildApiString}<#else>'${buildApiString}'</#if>改為
compileSdkVersion 24
這樣就算是完成了。
額外的小問題
我們知道,AS 新建 Phone module 時(shí)都會(huì)添加 support appcompat 包。由于 appcompat 包的大版本如果跟 compileSdkVersion 不一樣也會(huì)出現(xiàn) error 提示,所以也需要修改 appcompat 的默認(rèn)版本。
但 appcompat 對(duì)應(yīng)的模板文件并不在 build.gradle.ftl 中,而是在 <android-studio>/plugins/android/lib/templates/gradle-projects/NewAndroidProject/recipe.xml.ftl 中。
對(duì)應(yīng)的代碼為
<#if backwardsCompatibility!true> <dependency mavenUrl="com.android.support:appcompat-v7:${buildApi}.+"/></#if>直接修改為
<dependency mavenUrl="com.android.support:appcompat-v7:24.+"/>
大功告成~
吐槽
一般也不會(huì)有這種奇葩需求,要是遇到了……好吧,暫時(shí)只有這解決方案。需要注意的就是 AS 更新的時(shí)候有可能會(huì)發(fā)生沖突并且用新的模板文件覆蓋修改過后的文件,所以又得重新處理一次,略麻煩。
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)各位Android開發(fā)者們能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對(duì)武林網(wǎng)的支持。
新聞熱點(diǎn)
疑難解答
圖片精選