Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

java.lang.NullPointerException: Missing required view with ID:

Android Studio 3.6

in app/build.gradle:

android { viewBinding.enabled = true 

Here my xml:

<?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"     android:layout_width="match_parent"     android:layout_height="match_parent">      <androidx.constraintlayout.widget.ConstraintLayout         android:id="@+id/bluetoothBottonMainContainer"         android:layout_width="0dp"         android:layout_height="104dp"         app:layout_constraintBottom_toBottomOf="parent"         app:layout_constraintEnd_toEndOf="parent"         app:layout_constraintStart_toStartOf="parent"         app:layout_constraintTop_toTopOf="parent">          <View             android:id="@+id/viewPointNotSelect"             android:layout_width="16dp"             android:layout_height="16dp"             android:background="@drawable/circle_transparent"             app:layout_constraintBottom_toBottomOf="@+id/separator"             app:layout_constraintEnd_toStartOf="@+id/separator" app:layout_constraintTop_toTopOf="parent" /> 

and another xml the unclude prev. xml:

 <androidx.constraintlayout.widget.ConstraintLayout         android:id="@+id/bottonContainer"         android:layout_width="0dp"         android:layout_height="104dp"         app:layout_constraintBottom_toBottomOf="parent"         app:layout_constraintEnd_toEndOf="parent"         app:layout_constraintStart_toStartOf="parent">          <include             android:id="@+id/qrBottonContainer"             layout="@layout/qr_bottom_container"             android:layout_width="0dp"             android:layout_height="wrap_content"             app:layout_constraintBottom_toBottomOf="parent"             app:layout_constraintEnd_toEndOf="parent"             app:layout_constraintStart_toStartOf="parent" /> 

here my activity:

override fun onCreate(savedInstanceState: Bundle?) {         super.onCreate(savedInstanceState)         binding = QrBluetoothSwipeActivityBinding.inflate(layoutInflater)         setContentView(binding.root) } 

the app is build and run. Nice.

Now I move id - android:id="@+id/bluetoothBottonMainContainer"

to outer container like this:

<?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"     android:id="@+id/bluetoothBottonMainContainer"     android:layout_width="match_parent"     android:layout_height="match_parent">      <androidx.constraintlayout.widget.ConstraintLayout         android:layout_width="0dp"         android:layout_height="104dp"         app:layout_constraintBottom_toBottomOf="parent"         app:layout_constraintEnd_toEndOf="parent"         app:layout_constraintStart_toStartOf="parent"         app:layout_constraintTop_toTopOf="parent">          <View             android:id="@+id/viewPointNotSelect"             android:layout_width="16dp"             android:layout_height="16dp"             android:background="@drawable/circle_transparent"             app:layout_constraintBottom_toBottomOf="@+id/separator"             app:layout_constraintEnd_toStartOf="@+id/separator"             app:layout_constraintTop_toTopOf="parent" /> 

app is build, but when run I get runtime error in this line:

binding = QrBluetoothSwipeActivityBinding.inflate(layoutInflater) 

error:

10-25 11:11:51.290 E/AndroidRuntime(14128): FATAL EXCEPTION: main 10-25 11:11:51.290 E/AndroidRuntime(14128): Process: com.myproject.debug, PID: 14128 10-25 11:11:51.290 E/AndroidRuntime(14128): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.myproject.debug/com.myproject.ui.actviity.QRBluetoothSwipeActivity}: java.lang.NullPointerException: Missing required view with ID: bluetoothBottonMainContainer 10-25 11:11:51.290 E/AndroidRuntime(14128):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2416) 10-25 11:11:51.290 E/AndroidRuntime(14128):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476) 10-25 11:11:51.290 E/AndroidRuntime(14128):     at android.app.ActivityThread.-wrap11(ActivityThread.java) 10-25 11:11:51.290 E/AndroidRuntime(14128):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344) 10-25 11:11:51.290 E/AndroidRuntime(14128):     at android.os.Handler.dispatchMessage(Handler.java:102) 10-25 11:11:51.290 E/AndroidRuntime(14128):     at android.os.Looper.loop(Looper.java:148) 10-25 11:11:51.290 E/AndroidRuntime(14128):     at android.app.ActivityThread.main(ActivityThread.java:5417) 10-25 11:11:51.290 E/AndroidRuntime(14128):     at java.lang.reflect.Method.invoke(Native Method) 10-25 11:11:51.290 E/AndroidRuntime(14128):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 10-25 11:11:51.290 E/AndroidRuntime(14128):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 10-25 11:11:51.290 E/AndroidRuntime(14128): Caused by: java.lang.NullPointerException: Missing required view with ID: bluetoothBottonMainContainer 10-25 11:11:51.290 E/AndroidRuntime(14128):     at com.myproject.databinding.BluetoothBottomContainerBinding.bind(BluetoothBottomContainerBinding.java:114) 10-25 11:11:51.290 E/AndroidRuntime(14128):     at com.myproject.databinding.QrBluetoothSwipeActivityBinding.bind(QrBluetoothSwipeActivityBinding.java:76) 10-25 11:11:51.290 E/AndroidRuntime(14128):     at com.myproject.databinding.QrBluetoothSwipeActivityBinding.inflate(QrBluetoothSwipeActivityBinding.java:62) 10-25 11:11:51.290 E/AndroidRuntime(14128):     at com.myproject.databinding.QrBluetoothSwipeActivityBinding.inflate(QrBluetoothSwipeActivityBinding.java:52) 10-25 11:11:51.290 E/AndroidRuntime(14128):     at com.myproject.ui.actviity.QRBluetoothSwipeActivity.onCreate(QRBluetoothSwipeActivity.kt:31) 10-25 11:11:51.290 E/AndroidRuntime(14128):     at android.app.Activity.performCreate(Activity.java:6251) 10-25 11:11:51.290 E/AndroidRuntime(14128):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1107) 10-25 11:11:51.290 E/AndroidRuntime(14128):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2369) 10-25 11:11:51.290 E/AndroidRuntime(14128):     ... 9 more 10-25 11:11:51.291 W/ActivityManager(  780):   Force finishing activity com.myproject.debug/com.myproject.ui.actviity.QRBluetoothSwipeActivity 10-25 11:11:51.307 I/Icing   (11529): Indexing done com.google.android.gms-apps 
like image 582
Alexei Avatar asked Oct 25 '19 08:10

Alexei


Video Answer


1 Answers

I encountered this issue but in my case the issue is the include flag. The workaround I found is to make the view id to be the same as the id of the root view of the included layout.

activity_layout.xml

<LinearLayout>     <include android:id="@+id/widget1" layout="@layout/my_widget" /> </LinearLayout> 

my_widget.xml

<LinearLayout     android:id="@+id/widget1"> </LinearLayout> 
like image 183
Arst Avatar answered Sep 21 '22 06:09

Arst