错误膨胀class material.bottomnavigation.BottomNavigationView

问题描述 投票:1回答:2

我正在尝试实现BottomNavigationView,我知道关于同一问题有多个答案,但是似乎没有一个对我有用。

我关注了此doc

在预览模式下,出现此错误

IllegalArgumentException: Unknown color

当我运行TestActivity时,出现使类膨胀的错误

  • 可绘制图形在可绘制图形
  • 菜单在res / menu]内部>
  • 对于我从不同帖子中的答案所能理解的是资源问题。

我试图删除每个资源调用,但是即使仅定义了宽度和高度,我仍然会收到错误。

TestActivity

import android.os.Bundle;
import androidx.appcompat.app.AppCompatActivity;
import pt.myapp.android.myapp.R;

public class TestActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.test);
    }
}

test.xml

<FrameLayout
     xmlns:android="http://schemas.android.com/apk/res/android"
     mlns:app="http://schemas.android.com/apk/res-auto"
     android:layout_width="match_parent"
     android:layout_height="match_parent">

<com.google.android.material.bottomnavigation.BottomNavigationView        
    android:id="@+id/bottom_navigation"
    android:layout_width="match_parent"
    android:layout_height="56dp"
    android:layout_gravity="bottom"
    android:background="@color/colorPrimary"
    app:itemIconTint="@drawable/bottom_navigation_colors"
    app:itemTextColor="@drawable/bottom_navigation_colors"
    app:menu="@menu/bottom_navigation_menu" />

</FrameLayout>

bottom_navigation_menu

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:android="http://schemas.android.com/apk/res/android">

        <item
            android:id="@+id/nav_first_page"
            android:icon="@drawable/page"
            android:title="page"
            app:showAsAction="always" />

</menu>

bottom_navigation_colors.xml

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:state_checked="true"
        android:color="#ffffff" />
    <item
        android:state_checked="false"
        android:color="#ffffff" />
</selector>

gradle

apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'io.fabric'
apply plugin: 'kotlin-kapt'



android {
    lintOptions {
        checkReleaseBuilds false
        abortOnError false
    }
    compileSdkVersion 28
    useLibrary 'org.apache.http.legacy'
    defaultConfig {
        applicationId "pt.myapp.android.myapp"
        minSdkVersion 16
        targetSdkVersion 28
        versionCode 42
        versionName "v1.5.0d"
        vectorDrawables.useSupportLibrary = true
        multiDexEnabled true
    }

    signingConfigs {
        config {
            Properties properties = new Properties()
        properties.load(project.rootProject.file('local.properties').newDataInputStream())
            storeFile file(properties.getProperty('storeFile'))
            keyAlias properties.getProperty('keyAlias')
            storePassword properties.getProperty('storePassword')
            keyPassword properties.getProperty('keyPassword')
        }
    }

    dataBinding {
        enabled = true
    }

    buildTypes {
        release {
            signingConfig signingConfigs.config
            minifyEnabled true
            shrinkResources true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            proguardFile "proguard-butterknife-7.pro"
            proguardFile "proguard-google-play-services.pro"
            proguardFile "proguard-support-v7-appcompat.pro"
            proguardFile "proguard-joda.pro"
        }
        debug {
            debuggable true
            signingConfig signingConfigs.config
            applicationIdSuffix ".debug"
        }
    }
    compileOptions {
        targetCompatibility 1.8
        sourceCompatibility 1.8
    }
}


dependencies {
    implementation fileTree(include: ['*.jar'], dir: 'libs')
    implementation project(':FloatingView')


    implementation 'de.hdodenhof:circleimageview:2.2.0'

    /* Multidex */
    implementation 'androidx.multidex:multidex:2.0.1'


    implementation 'com.github.lzyzsd:circleprogress:1.2.1'

    /* FACEBOOK  */
    implementation 'com.facebook.android:facebook-android-sdk:4.35.0'
    implementation 'com.facebook.android:facebook-login:4.35'


    implementation 'com.github.wrdlbrnft:sorted-list-adapter:0.2.0.1'
    implementation 'com.github.chrisbanes:PhotoView:1.3.0'
    implementation 'com.scottyab:aescrypt:0.0.1'
    implementation 'com.github.traex.rippleeffect:library:1.3'
    implementation 'com.squareup.picasso:picasso:2.5.2'
    implementation 'com.miguelcatalan:materialsearchview:1.4.0'
    implementation 'com.github.rahatarmanahmed:circularprogressview:2.5.0'
    implementation 'com.jakewharton:butterknife:8.8.1'
    implementation 'im.dacer:AndroidCharts:1.0.4'
    implementation 'com.github.greenfrvr:rubber-loader:1.1.2@aar'

    /* SUPPORT LIBRARY */
    implementation 'com.google.android.material:material:1.0.0'
    implementation 'androidx.appcompat:appcompat:1.0.2'
    implementation 'androidx.cardview:cardview:1.0.0'
    implementation "androidx.recyclerview:recyclerview:1.0.0"
    implementation "androidx.legacy:legacy-support-v4:1.0.0"
    implementation "androidx.preference:preference:1.0.0"
    implementation "androidx.annotation:annotation:1.0.1"
    implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
    implementation "androidx.palette:palette:1.0.0"


    /* FIREBASE */
    implementation 'com.crashlytics.sdk.android:crashlytics:2.9.9'
    implementation 'com.google.firebase:firebase-core:16.0.7'

    implementation 'com.google.firebase:firebase-messaging:17.3.4'
    implementation "com.google.firebase:firebase-appindexing:17.1.0"
    implementation "com.google.firebase:firebase-auth:16.1.0"
    implementation "com.google.firebase:firebase-storage:16.0.5"
    implementation 'com.firebase:firebase-jobdispatcher:0.8.5'
    implementation 'com.firebaseui:firebase-ui-auth:3.3.1'
    implementation "com.google.firebase:firebase-ads:17.1.3"
    implementation "com.google.firebase:firebase-config:16.3.0"
    implementation "com.google.firebase:firebase-perf:16.2.3"
    implementation "com.google.firebase:firebase-database:16.0.6"
    implementation "com.google.firebase:firebase-appindexing:17.1.0"
    implementation 'com.firebaseui:firebase-ui-storage:0.6.0'



    // Room components
    implementation "androidx.room:room-runtime:2.1.0-alpha04"
    annotationProcessor "androidx.room:room-compiler:2.1.0-alpha04"
    androidTestImplementation "androidx.room:room-testing:2.1.0-alpha04"

    // Lifecycle components
    implementation "androidx.lifecycle:lifecycle-extensions:2.0.0"
    annotationProcessor "androidx.lifecycle:lifecycle-compiler:2.0.0"


    /* Retrofit */
    implementation 'com.squareup.retrofit2:retrofit:2.4.0'
    implementation 'com.squareup.retrofit2:retrofit-converters:2.4.0'
    implementation 'com.squareup.retrofit2:converter-gson:2.4.0'


    implementation 'joda-time:joda-time:2.9.9'    
    testImplementation 'junit:junit:4.12'

    implementation 'com.jakewharton:butterknife:9.0.0-SNAPSHOT'
    annotationProcessor 'com.jakewharton:butterknife-compiler:9.0.0-SNAPSHOT'

    debugImplementation 'com.sothree.slidinguppanel:library:3.3.1'

    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"


    kapt "com.android.databinding:compiler:3.3.0-alpha08"

}

kapt {
    generateStubs = true
}

apply plugin: 'com.google.gms.google-services'
repositories {
    mavenCentral()
}

错误

Process: pt.myapp.android.myapp.debug, PID: 13653
java.lang.RuntimeException: Unable to start activity ComponentInfo{pt.myapp.android.myapp.debug/pt.myapp.android.myapp.ui.activities.TestActivity}: android.view.InflateException: Binary XML file line #7: Binary XML file line #7: Error inflating class com.google.android.material.bottomnavigation.BottomNavigationView
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2913)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3048)
    at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)
    at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)
    at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1808)
    at android.os.Handler.dispatchMessage(Handler.java:106)
    at android.os.Looper.loop(Looper.java:193)
    at android.app.ActivityThread.main(ActivityThread.java:6669)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
 Caused by: android.view.InflateException: Binary XML file line #7: Binary XML file line #7: Error inflating class com.google.android.material.bottomnavigation.BottomNavigationView
 Caused by: android.view.InflateException: Binary XML file line #7: Error inflating class com.google.android.material.bottomnavigation.BottomNavigationView
 Caused by: java.lang.reflect.InvocationTargetException
    at java.lang.reflect.Constructor.newInstance0(Native Method)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:343)
    at android.view.LayoutInflater.createView(LayoutInflater.java:647)
    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:790)
    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:730)
    at android.view.LayoutInflater.rInflate(LayoutInflater.java:863)
    at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:824)
    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.setContentView(AppCompatDelegateImpl.java:469)
    at androidx.appcompat.app.AppCompatActivity.setContentView(AppCompatActivity.java:140)
    at pt.myapp.android.myapp.ui.activities.TestActivity.onCreate(TestActivity.java:13)
    at android.app.Activity.performCreate(Activity.java:7136)
    at android.app.Activity.performCreate(Activity.java:7127)
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1271)
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2893)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3048)
    at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)
    at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)
    at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1808)
    at android.os.Handler.dispatchMessage(Handler.java:106)
    at android.os.Looper.loop(Looper.java:193)
    at android.app.ActivityThread.main(ActivityThread.java:6669)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
 Caused by: android.content.res.Resources$NotFoundException: Resource ID #0x0
    at android.content.res.ResourcesImpl.getValue(ResourcesImpl.java:216)
    at android.content.res.Resources.getColorStateList(Resources.java:1031)
2019-02-10 14:47:12.350 13653-13653/pt.myapp.android.myapp.debug E/AndroidRuntime:     at android.content.Context.getColorStateList(Context.java:642)
    at androidx.appcompat.content.res.AppCompatResources.getColorStateList(AppCompatResources.java:67)
    at com.google.android.material.bottomnavigation.BottomNavigationMenuView.createDefaultColorStateList(BottomNavigationMenuView.java:467)
    at com.google.android.material.bottomnavigation.BottomNavigationMenuView.<init>(BottomNavigationMenuView.java:101)
    at com.google.android.material.bottomnavigation.BottomNavigationMenuView.<init>(BottomNavigationMenuView.java:86)
    at com.google.android.material.bottomnavigation.BottomNavigationView.<init>(BottomNavigationView.java:123)
    at com.google.android.material.bottomnavigation.BottomNavigationView.<init>(BottomNavigationView.java:114)
        ... 28 more

我正在尝试实现BottomNavigationView,我知道关于同一问题有多个答案,但是似乎没有一个对我有用。我按照此文档操作,在预览模式下,我...

java android bottomnavigationview androidx
2个回答
0
投票

使用活动主题Theme.MaterialComponents.DayNight


0
投票

BottomNavigationView中,由于XML会发生膨胀错误,它可能在@layout@drawable@style@color文件夹中。

© www.soinside.com 2019 - 2024. All rights reserved.