Kotlin扩展未解决的参考
我表示要学习kotlin,并试图通过kotlin指南创建一个项目。 在其中一个指南中说,我可以使用View的ID而不是findViewById
。 我已经导入了kotlin-android-extensions
插件,并将其添加到gradle文件中,但仍然无法通过仅使用id来获取对象的引用。 有人能帮我吗? 我正在使用Android Studio 2.3和Kotlin版本1.1.2-5。 这是我的代码:
主要的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:0.5.0@aar' 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。
没有必要在您的顶层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