让butterknife在as中只配置一次,适用所有的项目

关于 butterknife在as中的配置,很多的博友已经写了很多,但是大多数都是每次新建一个module后在build.gradle中进行配置。再次新建后就不能继续用,必须进行重新配置。感觉有些麻烦,想了一下能不能只配置一次,每次新建后都可以使用呢。想了好久,终于找到了一个办法。

提醒:在as源文件中配置时,记得先把源文件备份。这样即使你出错了,也还是可以恢复的。

1.首先说下每次建立都要进行的配置

在你当前的module的gradle中配置红色的部分。

apply plugin: 'com.android.application'
apply plugin: 'android-apt'

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.3"

    defaultConfig {
        applicationId "com.example.ggggg"
        minSdkVersion 15
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    testCompile 'junit:junit:4.12'
    apt 'com.jakewharton:butterknife-compiler:8.4.0'
    compile 'com.android.support:appcompat-v7:23.3.0'
    compile 'com.jakewharton:butterknife:8.4.0'
}
在工程目录下的gradle中配置
buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.1.2'
      classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
       
    }
}
这样就完成了。不过还是看下github上的信息吧

Configure your project-level build.gradle to include the 'android-apt' plugin:

buildscript {
  repositories {
    mavenCentral()
   }
  dependencies {
    classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
  }
}

Then, apply the 'android-apt' plugin in your module-level build.gradle and add the Butter Knife dependencies:

apply plugin: 'android-apt'

android {
  ...
}

dependencies {
  compile 'com.jakewharton:butterknife:8.4.0'
  apt 'com.jakewharton:butterknife-compiler:8.4.0'
}

Note: If you are using the new Jack compiler with version 2.2.0 or newer you do not need the 'android-apt' plugin and can instead replace apt with annotationProcessor when declaring the compiler dependency.

Note前面的已经配置好了,现在我们看下Note,当你所用的Jack compiler的版本是2.2.0或者更新的时候,可以不用配置android-apt而用annotationProcessor代替
2.下面来说明配置一次,下次不需要配置就可以使用butterknife的方法
 首先找到AndroidStudio\plugins\android\lib\templates\gradle-projects\NewAndroidModule\recipe.xml.ftl
recipe.xml.ftl中进行配置(在前几行的位置)
<recipe>
    <dependency mavenUrl="com.android.support:appcompat-v7:${buildApi}.+"/>
	 <dependency mavenUrl="com.jakewharton:butterknife:8.4.0"/>
<#if !createActivity>
    <mkdir at="${escapeXmlAttribute(srcOut)}" />
</#if>
有的人可能只配置这个就可以用了,但是我试的不能用,于是我又配置了下面的

先找到AndroidStudio\plugins\android\lib\templates\gradle-projects\NewAndroidModule\root\build.gradle.ftl文件,如下
<#if !(perModuleRepositories??) || perModuleRepositories>
buildscript {
    repositories {
        jcenter()
<#if mavenUrl != "mavenCentral">
        maven {
            url '${mavenUrl}'
        }
</#if>
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:${gradlePluginVersion}'
	 classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
    }
}
</#if>
<#if isLibraryProject?? && isLibraryProject>
apply plugin: 'com.android.library'
<#else>
apply plugin: 'com.android.application'
apply plugin: 'android-apt'
</#if>
<#if !(perModuleRepositories??) || perModuleRepositories>


repositories {
        jcenter()
<#if mavenUrl != "mavenCentral">
        maven {
            url '${mavenUrl}'
        }
</#if>
}
</#if>


android {
    compileSdkVersion <#if buildApiString?matches("^\\d+$")>${buildApiString}<#else>'${buildApiString}'</#if>
    buildToolsVersion "${buildToolsVersion}"


    defaultConfig {
    <#if isLibraryProject?? && isLibraryProject>
    <#else>
    applicationId "${packageName}"
    </#if>
        minSdkVersion <#if minApi?matches("^\\d+$")>${minApi}<#else>'${minApi}'</#if>
        targetSdkVersion <#if targetApiString?matches("^\\d+$")>${targetApiString}<#else>'${targetApiString}'</#if>
        versionCode 1
        versionName "1.0"
    }
<#if javaVersion?? && (javaVersion != "1.6" && buildApi lt 21 || javaVersion != "1.7")>


    compileOptions {
        sourceCompatibility JavaVersion.VERSION_${javaVersion?replace('.','_','i')}
        targetCompatibility JavaVersion.VERSION_${javaVersion?replace('.','_','i')}
    }
</#if>
<#if enableProGuard>
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
</#if>
}


dependencies {
    <#if dependencyList?? >
    <#list dependencyList as dependency>
    compile '${dependency}'
    </#list>
    </#if>
    compile fileTree(dir: 'libs', include: ['*.jar'])
<#if WearprojectName?has_content && NumberOfEnabledFormFactors?has_content && NumberOfEnabledFormFactors gt 1 && Wearincluded>
    wearApp project(':${WearprojectName}')
    compile 'com.google.android.gms:play-services:+'
</#if>
<#if unitTestsSupported>
    testCompile 'junit:junit:${junitVersion}'
    apt 'com.jakewharton:butterknife-compiler:8.4.0'
</#if>
}
经过测试可以用。但是我的as是2.1.2的用的butterknife是8.4.0的。所以别的版本的可不可以用未测试。
小结:此文是我经过2个小时摸索出来的,仅供大家参考,希望对大家有用,谢谢观看。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值