无法实例化一个或多个类 TextInputEditText 内部错误

Posted

技术标签:

【中文标题】无法实例化一个或多个类 TextInputEditText 内部错误【英文标题】:Failed to instantiate one or more class TextInputEditText internal error 【发布时间】:2020-06-24 04:40:45 【问题描述】:

我正在开发一个 android 项目,一切正常,直到我开始出现以下错误。

android.content.res.Resources$NotFoundException: 找不到维度 资源匹配值0x10500E0(解析名称: default_magnifier_width) 在当前配置中。在 android.content.res.Resources_Delegate.throwException(Resources_Delegate.java:1151) 在 android.content.res.Resources_Delegate.throwException(Resources_Delegate.java:1127) 在 android.content.res.Resources_Delegate.throwException(Resources_Delegate.java:1131) 在 android.content.res.Resources_Delegate.getDimensionPixelSize(Resources_Delegate.java:657) 在 android.content.res.Resources.getDimensionPixelSize(Resources.java:742) 在 android.widget.Magnifier$Builder.applyDefaults(Magnifier.java:1162) 在 android.widget.Magnifier$Builder.(Magnifier.java:1157) 在 android.widget.Magnifier.createBuilderWithOldMagnifierDefaults(Magnifier.java:155) 在 android.widget.Editor.(Editor.java:399) 在 android.widget.TextView.createEditorIfNeeded(TextView.java:12923) 在 android.widget.TextView.setRawInputType(TextView.java:6607) 在 android.widget.TextView.setInputType(TextView.java:6691) 在 android.widget.TextView.(TextView.java:1454) 在 android.widget.EditText.(EditText.java:88) 在 android.widget.EditText.(EditText.java:84) 在 androidx.appcompat.widget.AppCompatEditText.(AppCompatEditText.java:73) 在 com.google.android.material.textfield.TextInputEditText.(TextInputEditText.java:50) 在 com.google.android.material.textfield.TextInputEditText.(TextInputEditText.java:46) 在 java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native 方法)在 java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) 在 java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 在 java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490) 在 org.jetbrains.android.uipreview.ViewLoader.createNewInstance(ViewLoader.java:393) 在 org.jetbrains.android.uipreview.ViewLoader.loadClass(ViewLoader.java:179) 在 org.jetbrains.android.uipreview.ViewLoader.loadView(ViewLoader.java:138) 在 com.android.tools.idea.rendering.LayoutlibCallbackImpl.loadView(LayoutlibCallbackImpl.java:299) 在 android.view.BridgeInflater.loadCustomView(BridgeInflater.java:417) 在 android.view.BridgeInflater.loadCustomView(BridgeInflater.java:428) 在 android.view.BridgeInflater.createViewFromTag(BridgeInflater.java:332) 在 android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:961) 在 android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:1123) 在 android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:72) 在 android.view.LayoutInflater.rInflate(LayoutInflater.java:1097) 在 android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1084) 在 android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:1126) 在 android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:72) 在 android.view.LayoutInflater.rInflate(LayoutInflater.java:1097) 在 android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1084) 在 android.view.LayoutInflater.inflate(LayoutInflater.java:682) 在 android.view.LayoutInflater.inflate(LayoutInflater.java:501) 在 com.android.layoutlib.bridge.impl.RenderSessionImpl.inflate(RenderSessionImpl.java:328) 在 com.android.layoutlib.bridge.Bridge.createSession(Bridge.java:396) 在 com.android.tools.idea.layoutlib.LayoutLibrary.createSession(LayoutLibrary.java:193) 在 com.android.tools.idea.rendering.RenderTask.createRenderSession(RenderTask.java:509) 在 com.android.tools.idea.rendering.RenderTask.lambda$inflate$4(RenderTask.java:638) 在 java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) 在 java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) 在 java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) 在 java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) 在 java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) 在 java.base/java.lang.Thread.run(Thread.java:834)

TextInputEditText 显示此错误,说明

The following classes could not be instantiated:
- com.google.android.material.textfield.TextInputEditText (Open Class, Show Exception, Clear Cache)

我尝试了以下选项:

    缓存无效并重新启动 清理并构建项目 迁移到“支持”库 将父主题更改为“Theme.MaterialComponents.Light.DarkActionBar”

但没有任何效果,因为我认为日志表明它是当前配置的 dimen 内部值错误。 没有任何效果。

XML 文件:

<?xml version="1.0" encoding="utf-8"?>
<layout 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">

    <androidx.constraintlayout.widget.ConstraintLayout
        android:layout_
        android:layout_
        android:background="@drawable/background"
        tools:context=".activities.Register">

        <View
            android:id="@+id/view8"
            android:layout_
            android:layout_
            android:layout_marginStart="8dp"
            android:layout_marginEnd="8dp"
            android:layout_marginBottom="8dp"
            android:background="@drawable/ic_generate_bg_ui"
            app:layout_constraintBottom_toTopOf="@+id/guideline34"
            app:layout_constraintEnd_toStartOf="@+id/guideline29"
            app:layout_constraintStart_toStartOf="@+id/guideline28"
            app:layout_constraintTop_toTopOf="@+id/guideline30" />

        <androidx.constraintlayout.widget.Guideline
            android:id="@+id/guideline28"
            android:layout_
            android:layout_
            android:orientation="vertical"
            app:layout_constraintGuide_percent="0.05" />

        <androidx.constraintlayout.widget.Guideline
            android:id="@+id/guideline29"
            android:layout_
            android:layout_
            android:orientation="vertical"
            app:layout_constraintGuide_percent="0.95" />

        <androidx.constraintlayout.widget.Guideline
            android:id="@+id/guideline30"
            android:layout_
            android:layout_
            android:orientation="horizontal"
            app:layout_constraintGuide_percent="0.1" />

        <androidx.constraintlayout.widget.Guideline
            android:id="@+id/guideline31"
            android:layout_
            android:layout_
            android:orientation="horizontal"
            app:layout_constraintGuide_percent="1.0" />

        <TextView
            android:id="@+id/textView2"
            android:layout_
            android:layout_
            android:layout_marginStart="8dp"
            android:layout_marginTop="8dp"
            android:layout_marginEnd="8dp"
            android:text="@string/bank_details"
            android:textAlignment="center"
            android:textColor="@color/white"
            android:textSize="16sp"
            app:layout_constraintEnd_toStartOf="@+id/guideline29"
            app:layout_constraintHorizontal_bias="0.0"
            app:layout_constraintStart_toStartOf="@+id/guideline28"
            app:layout_constraintTop_toTopOf="parent"/>

        <ImageView
            android:id="@+id/textView"
            android:layout_
            android:layout_
            android:layout_marginStart="8dp"
            android:layout_marginTop="8dp"
            android:layout_marginEnd="8dp"
            android:layout_marginBottom="8dp"
            android:tint="@color/white"
            app:srcCompat="@drawable/ic_account_balance_wallet_black_24dp"
            android:textAlignment="center"
            android:textColor="@color/white"
            android:textSize="16sp"
            android:textStyle="bold"
            app:layout_constraintBottom_toTopOf="@+id/guideline30"
            app:layout_constraintEnd_toStartOf="@+id/guideline29"
            app:layout_constraintHorizontal_bias="0.498"
            app:layout_constraintStart_toStartOf="@+id/guideline28"
            app:layout_constraintTop_toBottomOf="@+id/textView2"
            tools:ignore="VectorDrawableCompat"
            android:contentDescription="@string/bank_balance_image" />

        <com.google.android.material.textfield.TextInputLayout
            android:id="@+id/textInputLayout"
            android:layout_
            android:layout_
            android:layout_marginStart="16dp"
            android:layout_marginTop="8dp"
            android:layout_marginEnd="16dp"
            app:layout_constraintEnd_toStartOf="@+id/guideline29"
            app:layout_constraintHorizontal_bias="0.0"
            app:layout_constraintStart_toStartOf="@+id/guideline28"
            app:layout_constraintTop_toTopOf="@+id/guideline33">

            <com.google.android.material.textfield.TextInputEditText
                android:id="@+id/accountHolderName"
                android:layout_
                android:layout_
                android:background="@drawable/ic_edit_text"
                android:hint="@string/account_holder_name"
                android:singleLine="true"
                android:textColor="@android:color/black" />

        </com.google.android.material.textfield.TextInputLayout>

        <androidx.constraintlayout.widget.Guideline
            android:id="@+id/guideline33"
            android:layout_
            android:layout_
            android:orientation="horizontal"
            app:layout_constraintGuide_percent="0.13" />

        <androidx.constraintlayout.widget.Guideline
            android:id="@+id/guideline34"
            android:layout_
            android:layout_
            android:orientation="horizontal"
            app:layout_constraintGuide_percent="0.85" />

        <com.google.android.material.textfield.TextInputLayout
            android:id="@+id/textInputLayout2"
            android:layout_
            android:layout_
            android:layout_marginStart="16dp"
            android:layout_marginTop="8dp"
            android:layout_marginEnd="16dp"
            app:layout_constraintEnd_toStartOf="@+id/guideline29"
            app:layout_constraintHorizontal_bias="0.0"
            app:layout_constraintStart_toStartOf="@+id/guideline28"
            app:layout_constraintTop_toBottomOf="@+id/textInputLayout">

            <com.google.android.material.textfield.TextInputEditText
                android:id="@+id/bankAccountNumber"
                android:layout_
                android:layout_
                android:background="@drawable/ic_edit_text"
                android:hint="@string/account_number"
                android:maxLines="1"
                android:singleLine="true"
                android:textColor="@android:color/black" />
        </com.google.android.material.textfield.TextInputLayout>

        <com.google.android.material.textfield.TextInputLayout
            android:id="@+id/textInputLayout3"
            android:layout_
            android:layout_
            android:layout_marginStart="16dp"
            android:layout_marginTop="8dp"
            android:layout_marginEnd="16dp"
            app:layout_constraintEnd_toStartOf="@+id/guideline29"
            app:layout_constraintHorizontal_bias="0.0"
            app:layout_constraintStart_toStartOf="@+id/guideline28"
            app:layout_constraintTop_toBottomOf="@+id/textInputLayout2">

            <com.google.android.material.textfield.TextInputEditText
                android:id="@+id/confirmBankAccountNumber"
                android:layout_
                android:layout_
                android:background="@drawable/ic_edit_text"
                android:hint="@string/confirm_account_number"
                android:maxLines="1"
                android:singleLine="true"
                android:textColor="@android:color/black" />
        </com.google.android.material.textfield.TextInputLayout>

        <com.google.android.material.textfield.TextInputLayout
            android:id="@+id/textInputLayoutIFSC"
            android:layout_
            android:layout_
            android:layout_marginStart="16dp"
            android:layout_marginTop="8dp"
            android:layout_marginEnd="16dp"
            app:layout_constraintEnd_toStartOf="@+id/guideline29"
            app:layout_constraintHorizontal_bias="0.0"
            app:layout_constraintStart_toStartOf="@+id/guideline28"
            app:layout_constraintTop_toBottomOf="@+id/textInputLayout3">

            <com.google.android.material.textfield.TextInputEditText
                android:id="@+id/ifscCode"
                android:layout_
                android:layout_
                android:background="@drawable/ic_edit_text"
                android:hint="@string/ifsc"
                android:maxLines="1"
                android:singleLine="true"
                android:textColor="@android:color/black" />
        </com.google.android.material.textfield.TextInputLayout>

        <androidx.appcompat.widget.AppCompatButton
            android:id="@+id/submitBankDetails"
            android:layout_
            android:layout_
            android:layout_marginStart="16dp"
            android:layout_marginTop="8dp"
            android:layout_marginEnd="16dp"
            android:background="@color/colorPrimary"
            android:onClick="onSubmit"
            android:text="@string/submit"
            android:textColor="@color/white"
            app:layout_constraintEnd_toStartOf="@+id/guideline29"
            app:layout_constraintStart_toStartOf="@+id/guideline28"
            app:layout_constraintTop_toBottomOf="@+id/textInputLayoutIFSC" />
    </androidx.constraintlayout.widget.ConstraintLayout>

</layout>

这是我的 gradle 文件:

dependencies 

    //  androidx dependency
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'androidx.appcompat:appcompat:1.1.0'
    implementation 'com.google.android.material:material:1.1.0'
    implementation 'androidx.legacy:legacy-support-v4:1.0.0'
    implementation "com.google.android.material:material:1.1.0"
    implementation "androidx.multidex:multidex:2.0.1"
    implementation "android.arch.navigation:navigation-fragment:$navigationFragment_version"
    implementation "com.google.android.gms:play-services-auth:$google_auth_version"
    implementation "com.google.android.play:core:$google_play_core"

【问题讨论】:

显示你的代码它可以帮助我们找到错误 @Amitpandey,我已经添加了代码,我已经从所有 TextInputEditText 中删除了 inputType 参数并且它现在正在呈现,但问题是我仍然需要添加 inputtype 以方便客户。 当我检查您的 xml 时,我没有发现任何问题显示您的编程代码 问题仅在 xml 文件中,编程代码与错误无关。我有 gradle 依赖项。 实现 'com.android.support:design:28.0.0' 试试这个 【参考方案1】:

我已经解决了我的问题,但它仍然产生了另一个问题。

为了解决这个内部问题,我刚刚从每个 TextInputEditText 中删除了“android:inputType”标签,它让 android studio 解析 ui,现在出现的另一个问题是我无法指定 inputType,这限制了我使用该功能。我尝试过使用 EditText 代替 TextInputEditText 的替代方法,但这并没有奏效,因为它只解决了上一个问题。

编辑:

如果你不能使用xml标签指定inputType,那么你可以使用setInputTupe() java方法来指定inputType。

【讨论】:

虽然我还没有真正测试过你的代码,但对我来说似乎是一个错误。您能否创建一个最小的可重现示例,这样您可以更轻松地找出您的代码或 Google 的 TextInputEditText 实现中是否存在错误,然后您还可以在 Google 的问题跟踪器中提交错误报告。 @ShivamPokhriyal,我确实报告了它。 “内部”代码中的值或参数可能存在问题,正如您从日志中看到的那样“android.content.res.Resources$NotFoundException:无法找到匹配值0x10500E0(解析名称:default_magnifier_width)的维度资源当前配置。”这是布局本身的内部值错误。 我确实检查了具有相同错误的各种来源,但找不到方法。这是一个非常独特的问题。

以上是关于无法实例化一个或多个类 TextInputEditText 内部错误的主要内容,如果未能解决你的问题,请参考以下文章

CDI + JPA 多个 @OneToMany - LAZY/EAGER - LazyInitializationException 或无法实例化多个包

PHP trait使用

无法加载或实例化 TagLibraryValidator 类:org.apache.taglibs.standard.tlv.JstlCoreTLV

php实例化多个类

面向对象

如何使用非常量值来实例化一个类的多个对象?