I have included a layout file within my activity and trying to access the text view to set the title during which it returns NullPointerException. Here is my Program and Logcat.
SplashActivity.kt
class SplashActivity : AppCompatActivity() {
private var mBinding: ActivitySplashBinding? = null
private var customHeaderBinding: CustomHeaderLayoutBinding? = null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
mBinding = ActivitySplashBinding.inflate(layoutInflater)
customHeaderBinding = CustomHeaderLayoutBinding.bind(mBinding!!.root)
setContentView(mBinding?.root)
customHeaderBinding?.headerTitle?.text = "New Title"
}
}
activity_splash.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".activity.SplashActivity">
<include
android:id="@+id/splash_header"
layout="@layout/custom_header_layout"/>
<RelativeLayout
android:id="@+id/splash_screen_frame_layout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/splash_iv_intro_vid"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_centerInParent="true"
android:adjustViewBounds="true"
android:background="@drawable/ir_splash"
android:scaleType="fitXY" />
.........
</RelativeLayout>
</LinearLayout>
custom_header_layout.xml
<?xml version="1.0" encoding="utf-8"?>
<merge 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:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="match_parent">
<RelativeLayout
android:id="@+id/content_frame"
android:layout_width="match_parent"
android:layout_height="@dimen/_18sdp"
android:background="@color/black">
<com.project.custom.CustomBoldTextView
android:id="@+id/header_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:text="@string/device_header_main_label"
android:textColor="@color/white"
android:textSize="@dimen/_8ssp"
android:textStyle="bold" />
</RelativeLayout>
</merge>
Exception Log
FATAL EXCEPTION: main
Process: com.demoapp, PID: 9247
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.demoapp/com.demoapp.activity.SplashActivity}: java.lang.NullPointerException: Missing required view with ID: com.demoapp:id/splash_header
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:4171)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:4317)
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:101)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2576)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loopOnce(Looper.java:226)
at android.os.Looper.loop(Looper.java:313)
at android.app.ActivityThread.main(ActivityThread.java:8772)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:571)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1067)
Caused by: java.lang.NullPointerException: Missing required view with ID: com.demoapp:id/splash_header
at com.demoapp.databinding.ActivitySplashBinding.bind(ActivitySplashBinding.java:91)
at com.demoapp.databinding.ActivitySplashBinding.inflate(ActivitySplashBinding.java:59)
at com.demoapp.databinding.ActivitySplashBinding.inflate(ActivitySplashBinding.java:49)
at com.demoapp.activity.SplashActivity.onCreate(SplashActivity.kt:29)
at android.app.Activity.performCreate(Activity.java:8565)
at android.app.Activity.performCreate(Activity.java:8544)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1384)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:4152)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:4317)
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:101)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2576)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loopOnce(Looper.java:226)
at android.os.Looper.loop(Looper.java:313)
at android.app.ActivityThread.main(ActivityThread.java:8772)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:571)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1067)
Thanks in advance.
Tried Solutions:
https://stackoverflow.com/a/67000023