无法实例化一个或多个类 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 或无法实例化多个包
无法加载或实例化 TagLibraryValidator 类:org.apache.taglibs.standard.tlv.JstlCoreTLV