2017-06-20 133 views
0

我說要學習kotlin並試圖通過kotlin指南創建一個項目。在其中一位導遊說,我可以使用View的ID代替findViewById。我已經導入kotlin-android-extensions插件,將其添加到gradle文件中^但仍然無法通過僅使用id獲取對象的引用。有人能幫我嗎?我正在使用Android Studio 2.3和Kotlin版本1.1.2-5。這裏是我的代碼:Kotlin擴展未解決的參考

主要gradle這個文件

buildscript { 
ext.kotlin_version = "1.1.2-5" 
repositories { 
    mavenCentral() 
} 
dependencies { 
    classpath 'com.android.tools.build:gradle:2.3.2' 
    classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" 
    classpath "org.jetbrains.kotlin:kotlin-android-extensions:$kotlin_version" 

    } 
} 

應用gradle這個文件

apply plugin: 'com.android.application' 
apply plugin: 'kotlin-android' 
apply plugin: 'kotlin-android-extensions' 

android { 
    compileSdkVersion 25 
    buildToolsVersion "25.0.0" 
    defaultConfig { 
     applicationId ".kotlintodoapp" 
     minSdkVersion 15 
     targetSdkVersion 25 
     versionCode 1 
     versionName "1.0" 
     testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" 
    } 
    buildTypes { 
     release { 
      minifyEnabled false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
    } 
} 

dependencies { 
    compile fileTree(dir: 'libs', include: ['*.jar']) 
    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { 
     exclude group: 'com.android.support', module: 'support-annotations' 
    }) 
    compile 'com.android.support:recyclerview-v7:25.2.0' 
    compile 'com.android.support:appcompat-v7:25.2.0' 
    compile 'com.android.support:support-v4:25.2.0' 
    compile 'com.android.support:design:25.2.0' 
    compile 'com.android.support.constraint:constraint-layout:1.0.2' 

    compile 'com.pawegio.kandroid:kandroid:[email protected]' 
    testCompile 'junit:junit:4.12' 
    compile "org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version" 
} 

repositories { 
    mavenCentral() 
} 

activity_main.xml中

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout 
    xmlns:a="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    a:id="@+id/parent_layout" 
    a:layout_width="match_parent" 
    a:layout_height="match_parent"> 

    <android.support.v7.widget.RecyclerView 
     a:id="@+id/simpleRecyclerView" 
     a:layout_width="match_parent" 
     a:layout_height="match_parent"/> 


</RelativeLayout> 

ActivityMain.kt

import android.os.Bundle 
import android.support.v7.app.AppCompatActivity 
import kotlinx.android.synthetic.main.activity_main.* 

class MainActivity : AppCompatActivity() { 


    override fun onCreate(savedInstanceState: Bundle?) { 
     super.onCreate(savedInstanceState) 
     setContentView(R.layout.activity_main) 
     simpleRecyclerView.setFixedSize(true) 
    } 
} 

的Android工作室說kotlinx.android.synthetic.main.activity_main.*是未使用的導入,並嘗試導入simpleRecyclerView爲ID。

+0

@ zsmb13是的,我安裝了kotlin插件,它工作正常,直到我重新啓動android studio。可能是工作室錯誤嗎? –

+0

您是否嘗試清理或重建項目? – uramonk

回答

0

沒有必要在您的頂層gradle文件中添加kotlin-android-extensions依賴項。

的gradle項目配置:

dependencies { 
    … 
    classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" 
} 

應用gradle這個配置:

apply plugin: 'kotlin-android-extensions' 

像你期望這個配置應該讓你的項目工作。參考:https://kotlinlang.org/docs/tutorials/android-plugin.html

+0

它不適合我。 –

+0

然後你有另一個問題,這是從官方kotlin文檔:https://kotlinlang.org/docs/tutorials/android-plugin.html – finki