I have two modules, common and application1.
common includes toolbar.xml, (which contains a Button) and application1 includes MainActivity and activity_main.
In activity_main.xml, I want to include the toolbar which I declared in common. However, when I try to access the Button in the toolbar from MainActivity, I get an error
Cannot access 'com.application1.databinding.ToolbarBinding'. Check module classpath for missing or conflicting dependencies
Does anyone know how to fix this? I've implemented the 'common' in gradle, but it still doesn't work. Below is my setup:
application1.gradle
dependencies {
implementation project(':common')
}
common/res/layout/toolbar.xml
<androidx.appcompat.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="match_parent">
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</androidx.appcompat.widget.Toolbar>
application1/res/layout/activity_main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<include
android:id="@+id/toolbar"
android:layout="@layout/toolbar" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Some Random Text" />
</LinearLayout>
application1/java/MainActivity.kt
class MainActivity : AppCompatActivity() {
private lateinit var mBinding: ActivityMainBinding
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
mBinding = ActivityMainBinding.inflate(layoutInflater)
mBinding.toolbar.button.setEnabled(true) // Cannot access 'databinding.ToolbarBinding'
setContentView(mBinding.root)
}
}