Mark Lucernas
Aug 10, 2021

Android Studio Fixes

Activity Components Can’t Be Accessed in Scripts Directly

Add

activity_main.xml

...

<TextView
    android:id="@+id/tv_app_name"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="Quiz App"
    android:gravity="center"
    android:layout_marginBottom="30dp"
    android:textSize="25sp"
    android:textStyle="bold"
    android:textColor="@android:color/white"
    />
    
...

MainActivity.kt

import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle

class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        var app_name = tv_app_name.text // Produces error
    }
}

...

Fix

Add import import kotlinx.android.synthetic.main.activity_main.* into MainActivity.kt and add plugin 'kotlin-android-extensions' in build.gradle(:app)

MainActivity.kt

import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import kotlinx.android.synthetic.main.activity_main.*

class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        var app_name = tv_app_name.text // Produces error
    }
}

...

build.gradle

plugins {
    id 'com.android.application'
    id 'kotlin-android'
    id 'kotlin-android-extensions'
    ...
}

...

Ref:


Resources