在NavigationView中找不到属性菜单

时间:2018-07-25 02:49:04

标签: android

当我在XML中使用控件com.google.android.material.navigation.NavigationView时 文件,出现错误:

  

错误:找不到属性菜单(aka cn.cupde.android:menu)。

这是我的xml文件:

 <?xml version="1.0" encoding="utf-8"?>
<RelativeLayout android:id="@+id/activity_home"
                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=".activity.HomeActivity">

    <androidx.drawerlayout.widget.DrawerLayout
        android:id="@+id/drawer_layout"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="vertical">

            <include
                layout="@layout/top_actionbar"/>

            <FrameLayout
                android:id="@+id/fl_main_content"
                android:layout_width="match_parent"
                android:layout_height="match_parent"/>

        </LinearLayout>

        <com.google.android.material.navigation.NavigationView
            android:id="@+id/navigation_view"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:layout_gravity="start"
            app:headerLayout="@layout/navigation_header"
            app:menu="@menu/navigation_menu"/>
    </androidx.drawerlayout.widget.DrawerLayout>


</RelativeLayout>

以及整个错误日志:

Android resource linking failed
Output:  /app/src/main/res/layout/activity_home.xml:30: 
error: attribute headerLayout (aka cn.cupde.android:headerLayout) not found.
error: attribute menu (aka cn.cupde.android:menu) not found.
error: failed linking file resources

这是我的build.gradle文件:

apply plugin: 'com.android.application'

apply plugin: 'kotlin-android'

apply plugin: 'kotlin-android-extensions'

android {
    compileSdkVersion 28
    defaultConfig {
        applicationId "cn.cupde.android"
        minSdkVersion 15
        targetSdkVersion 28
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    //kotlin
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
    implementation 'com.android.support:design:28.0.0-alpha1'

    implementation 'androidx.appcompat:appcompat:1.0.0-alpha1'
    implementation 'com.google.android.material:material:1.0.0-beta01'
    implementation 'de.hdodenhof:circleimageview:1.3.0'
    implementation 'androidx.legacy:legacy-support-v4:1.0.0-alpha1'

}

我该怎么办?顺便说一句,我用:

AndroidStudio3.2Preview

gradle-plugin-version 3.2.0-beta04

2 个答案:

答案 0 :(得分:1)

在build.gradle中,目标版本为28 com.android.support:design:26.1.0将不起作用,因为设计支持版本不应低于目标版本。

我建议将SDK版本降低到26,然后使用com.android.support:design:26.1.0 will。并同步gradle,它将解决属性错误。

供参考,请在依赖项`

下使用
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:26.+'
implementation 'com.android.support.constraint:constraint-layout:1.0.2'
implementation 'com.android.support:design:26.1.0'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.1'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'

` 并调整compileSdkVersion。

添加以上依赖项后,同步项目

答案 1 :(得分:0)

您是否添加了Gradle依赖项?编译'com.android.support:design:26.1.0'