Après avoir mis à jour mon projet vers AndroidX
avec targetSdkVersion
défini sur 28, mon projet se bloque lors de son installation à partir du magasin pour les tests bêta.
Voici le journal des erreurs que je reçois:
2019-07-08 08:28:33.026 32011-32011/? E/AndroidRuntime: FATAL EXCEPTION: main Process: hu.itq.oakprotection, PID: 32011
Java.lang.RuntimeException: Unable to start activity ComponentInfo{hu.itq.oakprotection/hu.itq.oakprotection.MainActivity}: Android.view.InflateException: Binary XML file line #15: Binary XML file line #15: Error inflating class com.google.Android.material.navigation.NavigationView
at Android.app.ActivityThread.performLaunchActivity(ActivityThread.Java:3194)
at Android.app.ActivityThread.handleLaunchActivity(ActivityThread.Java:3302)
at Android.app.ActivityThread.-wrap12(Unknown Source:0)
at Android.app.ActivityThread$H.handleMessage(ActivityThread.Java:1891)
at Android.os.Handler.dispatchMessage(Handler.Java:108)
at Android.os.Looper.loop(Looper.Java:166)
at Android.app.ActivityThread.main(ActivityThread.Java:7425)
at Java.lang.reflect.Method.invoke(Native Method)
at com.Android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.Java:245)
at com.Android.internal.os.ZygoteInit.main(ZygoteInit.Java:921)
Caused by: Android.view.InflateException: Binary XML file line #15: Binary XML file line #15: Error inflating class com.google.Android.material.navigation.NavigationView
Caused by: Android.view.InflateException: Binary XML file line #15: Error inflating class com.google.Android.material.navigation.NavigationView
Caused by: Java.lang.reflect.InvocationTargetException
at Java.lang.reflect.Constructor.newInstance0(Native Method)
at Java.lang.reflect.Constructor.newInstance(Constructor.Java:334)
at Android.view.LayoutInflater.createView(LayoutInflater.Java:658)
at Android.view.LayoutInflater.createViewFromTag(LayoutInflater.Java:801)
at Android.view.LayoutInflater.createViewFromTag(LayoutInflater.Java:741)
at Android.view.LayoutInflater.rInflate(LayoutInflater.Java:874)
at Android.view.LayoutInflater.rInflateChildren(LayoutInflater.Java:835)
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 androidx.appcompat.app.AppCompatDelegateImpl.c(Unknown Source:23)
at androidx.appcompat.app.AppCompatActivity.setContentView(Unknown Source:4)
at hu.itq.oakprotection.MainActivity.onCreate(Unknown Source:6)
at Android.app.Activity.performCreate(Activity.Java:7372)
at Android.app.Instrumentation.callActivityOnCreate(Instrumentation.Java:1218)
at Android.app.ActivityThread.performLaunchActivity(ActivityThread.Java:3147)
at Android.app.ActivityThread.handleLaunchActivity(ActivityThread.Java:3302)
at Android.app.ActivityThread.-wrap12(Unknown Source:0)
at Android.app.ActivityThread$H.handleMessage(ActivityThread.Java:1891)
at Android.os.Handler.dispatchMessage(Handler.Java:108)
at Android.os.Looper.loop(Looper.Java:166)
at Android.app.ActivityThread.main(ActivityThread.Java:7425)
at Java.lang.reflect.Method.invoke(Native Method)
at com.Android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.Java:245)
at com.Android.internal.os.ZygoteInit.main(ZygoteInit.Java:921)
Caused by: Java.lang.NoSuchMethodError: No interface method d()I in class Lorg/xmlpull/v1/XmlPullParser; or its super classes (declaration of 'org.xmlpull.v1.XmlPullParser' appears in /system/framework/core-libart.jar)
at androidx.appcompat.view.SupportMenuInflater.a(Unknown Source:5)
at androidx.appcompat.view.SupportMenuInflater.inflate(Unknown Source:25)
at com.google.Android.material.navigation.NavigationView.b(Unknown Source:12)
at com.google.Android.material.navigation.NavigationView.<init>(Unknown Source:255)
at com.google.Android.material.navigation.NavigationView.<init>(Unknown Source:2)
at Java.lang.reflect.Constructor.newInstance0(Native Method)
at Java.lang.reflect.Constructor.newInstance(Constructor.Java:334)
Voici mes dépendances dans build.gradle
fichier:
Android {
compileSdkVersion 28
def versionMajor = 1
def versionMinor = 0
def versionPatch = 1
def versionBuild = 4 // ezt kell átírni új verzió kirakásakor
defaultConfig {
applicationId "hu.itq.oakprotection"
minSdkVersion 23
targetSdkVersion 28
versionCode versionMajor * 10000 + versionMinor * 1000 + versionPatch * 100 + versionBuild
versionName "${versionMajor}.${versionMinor}.${versionPatch}"
}
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-Android.txt'), 'proguard-rules.pro'
}
}
compileOptions {
targetCompatibility 1.8
sourceCompatibility 1.8
}
}
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation 'androidx.core:core:1.0.2'
implementation 'androidx.appcompat:appcompat:1.0.2'
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
implementation 'androidx.annotation:annotation:1.1.0'
implementation 'com.payumoney.sdkui:plug-n-play:1.2.0'
implementation 'androidx.cardview:cardview:1.0.0'
implementation 'com.google.Android.material:material:1.1.0-alpha07'
implementation 'androidx.browser:browser:1.0.0'
implementation 'com.google.Android.gms:play-services-base:17.0.0'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test:runner:1.2.0'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
//Test error miatt kellett
implementation 'androidx.annotation:annotation:1.1.0'
//Aszinkron hálózatokhoz
implementation 'com.Android.volley:volley:1.1.1'
//Facebook
implementation 'com.facebook.Android:facebook-Android-sdk:4.34.0'
//Osm Droid
implementation 'org.osmdroid:osmdroid-Android:6.1.0'
implementation 'com.github.MKergall:osmbonuspack:6.4'
implementation 'com.github.angads25:filepicker:1.1.1'
//Tile provider igényli
implementation 'mil.nga.geopackage:geopackage-Android:3.0.2'
implementation 'com.j256.ormlite:ormlite-Android:5.1'
implementation 'mil.nga.geopackage:geopackage-core:3.0.2'
implementation 'ar.com.hjg:pngj:2.1.0'
implementation 'mil.nga:tiff:2.0.0'
implementation('mil.nga.geopackage:geopackage-Android:3.0.2') {
exclude group: 'com.google.Android.gms', module: 'play-services'
exclude group: 'com.google.maps.Android', module: 'Android-maps-utils'
exclude group: 'com.Android.support', module: 'support-v13'
}
//Glide
implementation 'com.github.bumptech.glide:glide:4.8.0'
annotationProcessor 'com.github.bumptech.glide:compiler:4.8.0'
//Mapsforge rendering and database support, which is LGPL
implementation 'org.mapsforge:mapsforge-map-Android:0.8.0'
implementation 'org.mapsforge:mapsforge-map:0.8.0'
implementation 'org.mapsforge:mapsforge-themes:0.8.0'
// ExoPlayer
implementation 'com.google.Android.exoplayer:exoplayer:2.7.3'
//Youtube
implementation 'com.github.HaarigerHarald:Android-youtubeExtractor:v1.7.0'}
activity_main.xml:
<androidx.drawerlayout.widget.DrawerLayout 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/drawer_layout"
Android:layout_width="match_parent"
Android:layout_height="match_parent"
Android:fitsSystemWindows="true"
tools:openDrawer="start"
tools:context=".MainActivity">
<include
layout="@layout/app_bar_main" />
<com.google.Android.material.navigation.NavigationView
Android:id="@+id/nav_view"
Android:layout_width="wrap_content"
Android:layout_height="match_parent"
Android:layout_gravity="start"
Android:fitsSystemWindows="true"
app:headerLayout="@layout/nav_header_main"
app:menu="@menu/activity_main_drawer"
app:itemIconTint="@color/colorPrimary"
app:itemTextColor="@color/colorPrimary"
Android:backgroundTint="@color/colorWhite"/>
</androidx.drawerlayout.widget.DrawerLayout>
Pourquoi reçois-je un Android.view.InflateException
erreur pour NavigationView
?
Dans mon cas, le problème est lié à la navigation.NavigationView app: headerLayout layout que je suis en train de définir
<ImageView
app:srcCompat="@mipmap/ic_launcher_round"
/>
et le problème est avec ic_launcher_round parce que c'est dans le dossier mipmap-anydpi-v26 et j'utilise Android version 7.1.1 qui est Niveau API: 25
j'espère que cela aide n'importe qui
Android.view.InflateException: signifie qu'il y a quelque chose de mal dans votre fichier XML lui-même.
Veuillez vérifier toutes vos dimensions, ressources de couleurs et autres ressources que vous avez attribuées dans la balise XML.
Ou postez votre fichier XML ici.
Vous pouvez vérifier votre fichier XML. Quelque chose ne va pas dans votre xml comme le menu, l'en-tête de navigation et autres. Dans mon cas, erreur dans res/menu/menu.xml
Pour ceux dont la réponse choisie ne les a pas aidés, j'ai trouvé qu'il y avait un problème avec le thème NavigationView et ce devrait être un thème appCompat (au moins pour moi). après avoir créé un nouveau style comme:
<style name="NavView" parent="Theme.AppCompat.NoActionBar">
<item name="Android:windowNoTitle">true</item>
...
</style>
et l'ai utilisé avec Android: theme = "@ style/NavView" dans NavigationView dans mon mainactivity.xml, l'application fonctionne parfaitement maintenant.