Дизайн материала Android Ошибка надувания класса android.support.design.widget.TextInputLayout

Я очень новый Android, поэтому я пытаюсь применить дизайн материала для моей страницы входа. Я хотел бы, чтобы это поддерживалось как после, так и до lolilop. Когда я пытаюсь запустить через эмулятор, я получаю эту ошибку.

  Caused by: android.view.InflateException: Binary XML file line #18: Binary XML file line #18: Error inflating class android.support.design.widget.TextInputLayout
                          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.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:284)
                       com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 
                       Caused by: android.view.InflateException: Binary XML file line #18: Error inflating class android.support.design.widget.TextInputLayout
                          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)

Вот мой build.gradle.

построить gradle.

android {
    compileSdkVersion 24
    buildToolsVersion "25.0.1"
    defaultConfig {
        applicationId "com.example.ns.appversion1"
        minSdkVersion 15
        targetSdkVersion 24
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
        exclude group: 'com.android.support', module: 'support-annotations'
    })
    compile 'com.android.support:appcompat-v7:24.2.1'
    testCompile 'junit:junit:4.12'
}

Вот мои настройки styles.xml.

styles.xml

<resources>

    <!-- Base application theme. -->
    <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
        <!-- Customize your theme here. -->
    </style>

    <style name="AppTheme.Dark" parent="Theme.AppCompat.NoActionBar">
        <item name="colorPrimary">@color/primary</item>
        <item name="colorPrimaryDark">@color/primary_dark</item>
        <item name="colorAccent">@color/accent</item>

        <item name="android:windowBackground">@color/primary</item>

        <item name="colorControlNormal">@color/iron</item>
        <item name="colorControlActivated">@color/white</item>
        <item name="colorControlHighlight">@color/white</item>
        <item name="android:textColorHint">@color/iron</item>

        <item name="colorButtonNormal">@color/primary_darker</item>
        <item name="android:colorButtonNormal">@color/primary_darker</item>
    </style>

    <style name="AppTheme.Dark.Dialog" parent="Theme.AppCompat.Dialog">
        <item name="colorAccent">@color/white</item>
        <item name="android:textColorPrimary">@color/iron</item>
        <item name="android:background">@color/primary</item>
    </style>

</resources>

2 ответа

Решение

Добавьте это к вашим зависимостям.

compile 'com.android.support:design:24.2.1'

Ниже приведен пример работы TextInputLayout

<android.support.design.widget.TextInputLayout
    android:id="@+id/testingInputLayout"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:theme="@style/Theme.AppCompat">

   <EditText
       android:id="@+id/testingEditText"
       android:layout_width="fill_parent"
       android:layout_height="wrap_content"
       android:hint="@string/testText"
       android:inputType="textEmailAddress" />

</android.support.design.widget.TextInputLayout>

Для тех, кто также сталкивался с этой ошибкой, я просто добавил атрибут темы в свой XML-макет...

           <android.support.design.widget.TextInputLayout 
                android:theme="@style/Theme.AppCompat"
                android:layout_width="match_parent"
                android:layout_height="match_parent">
                <EditText
                    android:id="@+id/password"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    ... />
            </android.support.design.widget.TextInputLayout>

Я реализовал это на Android O и Gradle 3.0.0

Другие вопросы по тегам