[b]前言[/b]
今天下午的时候有人问到,AS 哪里能配置 [code]build.gradle[/code] 的模板,从而达到每次新建 module 时默认的 compileSdkVersion 用指定的值而不是取最新 SDK 的 api-string。
[b]解决方案[/b]
先看了 Preferences,并没相关的 template 能修改 [code]build.gradle[/code],再 Google 了一会,只有[url=http://stackoverflow.com/questions/29253595/how-to-make-android-studio-use-my-build-gradle-template-for-a-new-project]该帖子[/url]提及到[code] build.gradle [/code]的模板文件的位置。
按照给出的路径 [code]<android-studio>/plugins/android/lib/templates/gradle-projects/NewAndroidProject/root/build.gradle.ftl(Mac 上 <android-studio>[/code] 即为 [code]/Applications/Android\ Studio.app/Contents)[/code]找到模板文件。
直接找到 compileSdkVersion 一行
compileSdkVersion <#if buildApiString?matches("^\\d+$")>${buildApiString}<#else>'${buildApiString}'</#if>
改为
这样就算是完成了。
[b]额外的小问题[/b]
我们知道,AS 新建 Phone module 时都会添加 support appcompat 包。由于 appcompat 包的大版本如果跟 compileSdkVersion 不一样也会出现 error 提示,所以也需要修改 appcompat 的默认版本。
但 appcompat 对应的模板文件并不在 [code]build.gradle.ftl[/code] 中,而是在[code] <android-studio>/plugins/android/lib/templates/gradle-projects/NewAndroidProject/recipe.xml.ftl [/code]中。
对应的代码为
<#if backwardsCompatibility!true>
<dependency mavenUrl="com.android.support:appcompat-v7:${buildApi}.+"/>
</#if>
直接修改为
<dependency mavenUrl="com.android.support:appcompat-v7:24.+"/>
大功告成~
[b]吐槽[/b]
一般也不会有这种奇葩需求,要是遇到了……好吧,暂时只有这解决方案。需要注意的就是 AS 更新的时候有可能会发生冲突并且用新的模板文件覆盖修改过后的文件,所以又得重新处理一次,略麻烦。
[b]总结[/b]
以上就是这篇文章的全部内容了,希望本文的内容对各位Android开发者们能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对编程素材网的支持。