Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android studio AminActivity.kt中未识别Android Studio 4.1 Kotlin小部件ID_Android Studio_Kotlin_Textview - Fatal编程技术网

Android studio AminActivity.kt中未识别Android Studio 4.1 Kotlin小部件ID

Android studio AminActivity.kt中未识别Android Studio 4.1 Kotlin小部件ID,android-studio,kotlin,textview,Android Studio,Kotlin,Textview,我试图用Kotlin在Android Studio(AS)4.1中创建一个新项目。我使用“空活动”并创建项目“MyTest” AS使用未命名的TextView“Hello World”创建activity_main.xml。我给id命名为myText <?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout

我试图用Kotlin在Android Studio(AS)4.1中创建一个新项目。我使用“空活动”并创建项目“MyTest”

AS使用未命名的TextView“Hello World”创建activity_main.xml。我给id命名为myText

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <TextView
        android:id="@+id/myText"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Hello World!"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

</androidx.constraintlayout.widget.ConstraintLayout>
所有这些都是正常的,但是

现在在MAinActivity.kt中,应该可以键入

myText=“任意字符串”

但是这里我的文本没有被识别。我不明白

我有一些早期版本的小测试项目。它们看起来一模一样——它可以输入myText,并且myText可以立即被识别


我的编码或项目创建有什么问题!创建了几个项目,与以前的项目相比,我看不出我的做法有什么缺点。谁有主意?

你需要将Kotlin Android扩展集成到你的项目中,这样你的观点才能得到认可。只需在
build.gradle中添加以下行即可:

apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
本文中的更多信息:

但是 合成将在Kotlin 1.4.20中被弃用,因为它不是空安全的。如果你打算在一段时间内维护你正在构建的项目,最好不要使用Kotlin Android扩展

上述链接中建议的备选方案包括:

  • 视图绑定
  • findviewbyd
  • Kotterknife(已弃用)
  • 雄激素注释

FindViewById是“官方”方法,使用方便,Kotlin建议ViewBinding在我读到的时候有一些样板文件(我还没有使用过)。只需在你的
build.gradle(应用程序)
顶部添加以下行:

plugins {
    id 'com.android.application'
    id 'kotlin-android'
    id 'kotlin-android-extensions' }
之后,将此导入语句包括在
MainActivity.kt
文件中:

import kotlinx.android.synthetic.main.activity_main.*
欲了解更多详细信息,请访问

`https://youtrack.jetbrains.com/issue/KT-42121`
在那之后,别忘了同步你的gradle文件。

因为“kotlin android extensions”已经被弃用了,现在最好使用视图绑定

为此,首先在build.gradle文件中启用视图绑定,方法是在android块下编写这些代码行

buildFeatures {
    viewBinding true
} 
然后在活动文件中使用视图绑定功能

首先将绑定的全局变量声明为

private lateinit var binding: ActivityHomeBinding
这里ActivityHomeBinding是一个自动生成的类

然后在OnCreate()方法中编写这些代码


谢谢你的解决方案。我用FindViedById解决了这个问题。谢谢你的“但是”信息。我读了这篇文章,其中几位用户表示,Kotlin Android扩展应该保留并集成,以备将来使用。我们拭目以待
private lateinit var binding: ActivityHomeBinding
binding = ActivityHomeBinding.inflate(layoutInflater)
setContentView(binding.root)