I am trying to implement Tab Layout but unfortunately getting this error ,
i have added my xml code ,can anyone help figuring out what i am doing incorrectly.
the following is the error log i get
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.vvdntech.design_material/com.example.vvdntech.design_material.LoggedIn}: android.view.InflateException: Binary XML file line #16: Binary XML file line #16: Error inflating class com.google.android.material.tabs.TabLayout
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2585)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2667)
at android.app.ActivityThread.-wrap11(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1494)
at android.os.Handler.dispatchMessage(Handler.java:111)
at android.os.Looper.loop(Looper.java:207)
at android.app.ActivityThread.main(ActivityThread.java:5776)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:789)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:679)
Caused by: android.view.InflateException: Binary XML file line #16: Binary XML file line #16: Error inflating class com.google.android.material.tabs.TabLayout
at android.view.LayoutInflater.inflate(LayoutInflater.java:539)
at android.view.LayoutInflater.inflate(LayoutInflater.java:423)
at android.view.LayoutInflater.inflate(LayoutInflater.java:374)
at android.support.v7.app.AppCompatDelegateImpl.setContentView(AppCompatDelegateImpl.java:467)
at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:140)
at com.example.vvdntech.design_material.LoggedIn.onCreate(LoggedIn.java:17)
at android.app.Activity.performCreate(Activity.java:6582)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1113)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2532)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2667)
at android.app.ActivityThread.-wrap11(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1494)
at android.os.Handler.dispatchMessage(Handler.java:111)
at android.os.Looper.loop(Looper.java:207)
at android.app.ActivityThread.main(ActivityThread.java:5776)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:789)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:679)
Caused by: android.view.InflateException: Binary XML file line #16: Error inflating class com.google.android.material.tabs.TabLayout
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:776)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:704)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:835)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:798)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:838)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:798)
at android.view.LayoutInflater.inflate(LayoutInflater.java:515)
at android.view.LayoutInflater.inflate(LayoutInflater.java:423)
at android.view.LayoutInflater.inflate(LayoutInflater.java:374)
at android.support.v7.app.AppCompatDelegateImpl.setContentView(AppCompatDelegateImpl.java:467)
at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:140)
at com.example.vvdntech.design_material.LoggedIn.onCreate(LoggedIn.java:17)
at android.app.Activity.performCreate(Activity.java:6582)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:789)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:679)
Caused by: java.lang.ClassNotFoundException: Didn't find class "com.google.android.material.tabs.TabLayout" on path: DexPathList[[zip file "/data/app/com.example.vvdntech.design_material-1/base.apk", zip file "/data/app/com.example.vvdntech.design_material-1/split_lib_dependencies_apk.apk",
This is the xml file i have
<RelativeLayout
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=".LoggedIn">
<android.support.v4.view.ViewPager
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/pager">
<com.google.android.material.tabs.TabLayout
android:id="@+id/tabs"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<com.google.android.material.tabs.TabItem
android:icon="@drawable/b"
android:text="tab1" />
<com.google.android.material.tabs.TabItem
android:icon="@drawable/b"
android:text="tab2"/>
<com.google.android.material.tabs.TabItem
android:icon="@drawable/b"
android:text="tab3"/>
</com.google.android.material.tabs.TabLayout>
</android.support.v4.view.ViewPager>
</RelativeLayout>
Main Activity i haven't added anything yet. this is totally practice , so if any small mistakes in code , do tell.
EDIT : i am also attaching my gradle file
apply plugin: 'com.android.application'
android {
compileSdkVersion 28
defaultConfig {
applicationId "com.example.vvdntech.design_material"
minSdkVersion 19
targetSdkVersion 28
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation 'com.android.support:appcompat-v7:28.0.0-alpha3'
implementation 'com.android.support.constraint:constraint-layout:1.1.2'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
implementation 'com.android.support:design:28.0.0-alpha3'
}
& https://material.io/develop/android/components/tab-layout/ i am using this link where the tab is inside view pager.
thnx in advance
The source of the error is that com.google.android.material.tabs.TabLayout
does not come from the support libraries but rather from the material design library as @Doflaminhgo pointed out.
dependencies {
// ...
implementation 'com.google.android.material:material:1.0.0'
// ...
}
Reference https://github.com/material-components/material-components-android/blob/master/docs/getting-started.md
I am not sure why the Android reference documentation describes use of Material Components without apparently mentioning where to find it anywhere in the section.
this is a bit late, but for anyone who might be looking into this for the future:
the package you need to use is not com.google.android.material.tabs (although it is the one used in the material design website), but it is android.support.design.widget instead (both for TabLayout and TabItem). here is an example usage:
<android.support.design.widget.TabLayout
android:id="@+id/tabs"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<android.support.design.widget.TabItem
android:icon="@android:drawable/ic_menu_help"
android:text="Active"
android:layout_height="wrap_content"
android:layout_width="wrap_content"/>
<android.support.design.widget.TabItem
android:icon="@android:drawable/ic_menu_help"
android:text="History"
android:layout_height="wrap_content"
android:layout_width="wrap_content"/>
<android.support.design.widget.TabItem
android:icon="@android:drawable/ic_menu_help"
android:text="Ignored"
android:layout_height="wrap_content"
android:layout_width="wrap_content"/>
</android.support.design.widget.TabLayout>
It could be that it's looking for values which don't exist in your current app theme. Therefore, make sure your app theme starts with Theme.MaterialComponents
instead of Theme.AppCompat
.
As pointed here and here, your app should use a theme that inherits Theme.MaterialComponents
themes or should have desired attributes.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With