Kotlin框架--配置及ButterKnife无效问题

来源:互联网 发布:java hsv色彩转rgb 编辑:程序博客网 时间:2024/06/08 07:38

一、studio项目引入Kotlin框架--配置:(下载具体不详解可参考其他文档
http://www.runoob.com/kotlin/otlin-android-setup.html
1、执行 Settings -> plugins -> BrowseRepositories中搜索“Kotlin”
2、安装Kotlin和Kotlin Extensions…
3、Kotlin插件安装成功后,执行new操作,-“KotlinFile/Class”:一般Kotlin类-“Kotlin Activity”:Activity类

4、配置Kotlin

当我们第一次创建一个Kotlin类或者转化,会弹出提示Configure Kotlin的弹窗:

点击并按照提示步骤即可;

 
 
然后等待同步完成--可能需要等待一段时间

至此配置完成;可以在gradle中查看:
buildscript {    ext.kotlin_version = '1.1.3-2'    repositories {        jcenter()    }    dependencies {        classpath 'com.android.tools.build:gradle:2.3.2'        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"        // NOTE: Do not place your application dependencies here; they belong        // in the individual module build.gradle files    }}

apply plugin: 'kotlin-android'
dependencies {    compile fileTree(include: ['*.jar'], dir: 'libs')    ………………………………    compile "org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version"}repositories {    mavenCentral()}

然后就可以新建开发了;
当然不能忘了 Studio中Java和Kotlin代码互转方式
执行code–> Convert Java File to Kotlin File
 

 

二、Kotlin使用ButterKnife无效问题
Kotlin中直接使用ButterKnife的注解方式的话,会出现空指针的异常,导致绑定失败。
所以就有——KotterKnife(代码转化或新建并且不影响之前代码)    
       1、 主目录build.gradle文件:已生成
buildscript {
ext.kotlin_version = '1.1.3-2'
 
    dependencies {
        classpath 'com.android.tools.build:gradle:2.3.2'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    }
}
      2、项目的gradle配置文件中加入
  apply plugin: 'com.android.application'
  apply plugin: 'kotlin-android'
  
  dependencies {
    compile 'com.jakewharton:butterknife:7.0.1'
//这个插件是建立在ButterKnife7的基础上的
compile 'com.jakewharton:kotterknife:0.1.0-SNAPSHOT'
compile "org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version"
  }
  
  最后修改:
  repositories {
//mavenCentral()---添加是自己生成的
maven {
url 'https://oss.sonatype.org/content/repositories/snapshots/'
}

使用方式如下:

在onCreate方法里,添加
ButterKnife.bind(this@MainActivity)

绑定控件---转化自动生成方式:
    @Bind(R.id.title)
    internal var title: TextView? = null
    @Bind(R.id.recycleview)
    internal var recycleview: RecyclerView? = null
原创粉丝点击