android.support.design.widget.TextInputLayout无法实例化

时间:2016-07-17 17:10:14

标签: java android android-textinputlayout

我想在我的Android应用程序中集成android.support.design.widget.TextInputLayout。我已将jar文件 android-support-design.jar 从sdk复制到我的应用程序li​​b文件夹。我在我的xml文件中为Email EditText添加了以下代码,

 <!-- Email Label -->
        <android.support.design.widget.TextInputLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="8dp"
            android:layout_marginBottom="8dp">
            <EditText android:id="@+id/input_email"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:inputType="textEmailAddress"
                android:hint="Email" />
        </android.support.design.widget.TextInputLayout>

在我的layout.xml文件中添加此代码时,我收到类似

的错误
Exception raised during rendering: com.android.layoutlib.bridge.MockView cannot be cast to android.view.ViewGroup
Exception details are logged in Window > Show View > Error Log
The following classes could not be instantiated:
- android.support.design.widget.TextInputLayout (Open Class, Show Error Log)
See the Error Log (Window > Show View) for more details.

我该如何解决这个问题......

8 个答案:

答案 0 :(得分:7)

如果您使用AndroidStudio,则不应包含android-support-design.jar。 相反,在build.gradle中编写如下:

dependencies {
    ...
    compile 'com.android.support:design:24.0.0'
    ...
}

编辑:如果这不起作用,您可能使用的是其他版本。在Windows中,请转到:

[android-sdk]\extras\android\m2repository\com\android\support\design

在Mac上:

sdk/extras/android/m2repository/com/android/support/design

此目录包含许多版本文件夹。在build.gradle上使用最新版本。

答案 1 :(得分:2)

替换

android.support.design.widget.TextInputLayout

使用

com.google.android.material.textfield.TextInputLayout

答案 2 :(得分:1)

您使用的依赖项是Android支持库的一部分,现已弃用,并且Google不再支持。而是使用此:
implementation 'com.google.android.material:material:<version>'
并将<version>替换为Google's Maven RepositoryMVN Repository

的最新版本

也许您可以在这里Getting Started

了解更多信息

答案 3 :(得分:1)

对于android androidX添加此依赖项

implementation 'com.google.android.material:material:1.2.0'

然后尝试

答案 4 :(得分:0)

您输入ID时出错 给TextInputLayout输入ID

答案 5 :(得分:0)

我有类似的问题,将以下文本替换为TextInputLayout设计模式:

  

com.google.android.material.textfield.TextInputLayout

答案 6 :(得分:0)

在以下行中添加build.gradle:

implementation 'com.android.support:design:28.0.0'

并在xml文件中使用:

 <com.google.android.material.textfield.TextInputLayout
                    android:id="@+id/inputLayoutMobile"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_marginLeft="@dimen/dimen_20dp"
                    android:layout_marginRight="@dimen/dimen_20dp"
                    android:hint="@string/phone_number"
                    android:visibility="gone"
                    android.support.design:layout_constraintTop_toBottomOf="@+id/inputLayoutAppServerUrl">

                    <com.google.android.material.textfield.TextInputEditText
                        android:id="@+id/edtTxtMobile"
                        style="@style/Style_TextView"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:drawableLeft="@drawable/ic_smartphone"
                        android:drawablePadding="@dimen/dimen_10dp"
                        android:inputType="number"
                        android:singleLine="true"
                        android:scrollbars="vertical"
                        android:text="@={SettingViewModel.mMobileNo}"
                        android:textSize="@dimen/font_13sp" />
                </com.google.android.material.textfield.TextInputLayout>

答案 7 :(得分:0)

如果实现、编译和 api 不起作用,请尝试使用带有最新版本材料库的类路径,您可以在 Google's Maven Repository 上找到最新版本

dependencies {
    .....
    classpath 'com.google.android.material:material:1.4.0-beta01'
    ....
}