J'essaie d'implémenter la disposition des onglets, mais j'obtiens malheureusement cette erreur,
j'ai ajouté mon code xml, quelqu'un peut-il m'aider à comprendre ce que je fais mal.
ce qui suit est le journal des erreurs que je reçois
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",
Ceci est le fichier xml que j'ai
<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>
Activité principale je n'ai encore rien ajouté. c'est totalement pratique, donc s'il y a de petites erreurs de code, dites-le.
EDIT: je joins également mon fichier de notes
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/ j'utilise ce lien où l'onglet est à l'intérieur du pager de vue.
merci d'avance
La source de l'erreur est que com.google.Android.material.tabs.TabLayout
ne provient pas des bibliothèques de support mais plutôt de la bibliothèque de conception de matériaux comme l'a souligné @Doflaminhgo.
dependencies {
// ...
implementation 'com.google.Android.material:material:1.0.0'
// ...
}
Je ne sais pas pourquoi le Android documentation de référence décrit l'utilisation des composants matériels sans mentionner apparemment où le trouver n'importe où dans la section.
c'est un peu tard, mais pour tous ceux qui pourraient envisager cela pour l'avenir:
le package que vous devez utiliser est pas com.google.Android.material.tabs (bien que ce soit celui utilisé sur le site Web de conception de matériaux), mais c'est Android.support.design .widget à la place (pour TabLayout et TabItem). voici un exemple d'utilisation:
<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>
Il se peut qu'il recherche des valeurs qui n'existent pas dans le thème de votre application actuelle. Par conséquent, assurez-vous que le thème de votre application commence par Theme.MaterialComponents
au lieu de Theme.AppCompat
.
Parcourez vos bibliothèques de support dans le fichier gradle, toutes les bibliothèques de support doivent avoir la même version, probablement des versions mixtes.