web-dev-qa-db-ja.com

AndroidXへの移行後のクラスcom.google.Android.material.navigation.NavigationViewのインフレート中にエラーが発生しました

AndroidXを28に設定してプロジェクトをtargetSdkVersionに更新した後、ベータテスト用にストアからインストールすると、プロジェクトがクラッシュします。

以下は私が受け取るエラーログです:

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) 

以下は、build.gradleファイルの依存関係です。

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>

NavigationViewAndroid.view.InflateExceptionエラーが表示されるのはなぜですか?

5
Tankos

私の場合、問題はナビゲーションにあります。NavigationViewapp:headerLayoutレイアウト私は設定しています

<ImageView 
  app:srcCompat="@mipmap/ic_launcher_round"
/> 

そして、問題はic_launcher_roundにあります。これはこれがフォルダーmipmap-anydpi-v26内にあり、Androidバージョン7.1.1であるためです) APIレベル:25

これが誰にも役立つことを願っています

0
Zeeshan Akhtar

Android.view.InflateException:XMLファイル自体に問題があることを意味します。

すべてのディメンション、カラーリソース、およびXMLタグで割り当てたその他のリソースを確認してください。

または、ここにXMLファイルを投稿してください。

0
UserSharma

XMLファイルを確認できます。メニュー、ナビゲーションヘッダーなどのXMLに問題があります。私の場合、res/menu/menu.xmlに誤りがあります

0
Izzamed

選択した回答が役に立たなかった人のために、NavigationViewテーマに問題があり、それが(少なくとも私にとっては)appCompatテーマであることがわかりました。次のような新しいスタイルを作成した後:

<style name="NavView" parent="Theme.AppCompat.NoActionBar">
    <item name="Android:windowNoTitle">true</item>
    ...
</style>

私のmainactivity.xmlのNavigationViewでAndroid:theme = "@ style/NavView"と一緒に使用すると、アプリは完全に実行されます。

0
Burzum