在 Android 平板电脑版本 4.4.2 中膨胀类 EditText 时出错
Posted
技术标签:
【中文标题】在 Android 平板电脑版本 4.4.2 中膨胀类 EditText 时出错【英文标题】:Error inflating class EditText in Android Tablet version 4.4.2 【发布时间】:2017-03-02 01:08:28 【问题描述】:您好,我所有的应用程序都运行良好,但我在 android 平板电脑中遇到了崩溃,version 4.4.2
但不知道为什么应用程序在其他版本中运行良好。我得到的错误:
致命异常:java.lang.RuntimeException:无法启动活动 组件信息: android.view.InflateException:二进制 XML 文件第 38 行:错误 膨胀类 EditText android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2195) 在 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245) 在 android.app.ActivityThread.access$800(ActivityThread.java:135) 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196) 在 android.os.Handler.dispatchMessage(Handler.java:102) 在 android.os.Looper.loop(Looper.java:136) 在 android.app.ActivityThread.main(ActivityThread.java:5017) 在 java.lang.reflect.Method.invokeNative(Method.java) 在 java.lang.reflect.Method.invoke(Method.java:515) 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595) 在 dalvik.system.NativeStart.main(NativeStart.java) 由 android.view.InflateException 引起:二进制 XML 文件第 38 行:错误 膨胀类 EditText 在 android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:713) 在 android.view.LayoutInflater.rInflate(LayoutInflater.java:755) 在 android.view.LayoutInflater.rInflate(LayoutInflater.java:758) 在 android.view.LayoutInflater.rInflate(LayoutInflater.java:758) 在 android.view.LayoutInflater.rInflate(LayoutInflater.java:758) 在 android.view.LayoutInflater.rInflate(LayoutInflater.java:758) 在 android.view.LayoutInflater.rInflate(LayoutInflater.java:758) 在 android.view.LayoutInflater.parseInclude(LayoutInflater.java:839) 在 android.view.LayoutInflater.rInflate(LayoutInflater.java:745) 在 android.view.LayoutInflater.inflate(LayoutInflater.java:492) 在 android.view.LayoutInflater.inflate(LayoutInflater.java:397) 在 android.view.LayoutInflater.inflate(LayoutInflater.java:353) 在 android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:280) 在 android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:140) 在 android.app.Activity.performCreate(Activity.java:5231) 在 android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087) 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2159) 在 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245) 在 android.app.ActivityThread.access$800(ActivityThread.java:135) 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196) 在 android.os.Handler.dispatchMessage(Handler.java:102) 在 android.os.Looper.loop(Looper.java:136) 在 android.app.ActivityThread.main(ActivityThread.java:5017) 在 java.lang.reflect.Method.invokeNative(Method.java) 在 java.lang.reflect.Method.invoke(Method.java:515) 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595) 在 dalvik.system.NativeStart.main(NativeStart.java) 由 java.lang.UnsupportedOperationException 引起:无法转换为维度: 类型=0x1 在 android.content.res.TypedArray.getDimensionPixelSize(TypedArray.java:464) 在 android.widget.TextView.(TextView.java:972) 在 android.widget.EditText.(EditText.java:60) 在 android.support.v7.widget.AppCompatEditText.(AppCompatEditText.java:60) 在 android.support.v7.widget.AppCompatEditText.(AppCompatEditText.java:56) 在 android.support.v7.app.AppCompatViewInflater.createView(AppCompatViewInflater.java:112) 在 android.support.v7.app.AppCompatDelegateImplV7.createView(AppCompatDelegateImplV7.java:1008) 在 android.support.v7.app.AppCompatDelegateImplV7.onCreateView(AppCompatDelegateImplV7.java:1067) 在 android.support.v4.view.LayoutInflaterCompatHC$FactoryWrapperHC.onCreateView(LayoutInflaterCompatHC.java:44) 在 android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:684) 在 android.view.LayoutInflater.rInflate(LayoutInflater.java:755) 在 android.view.LayoutInflater.rInflate(LayoutInflater.java:758) 在 android.view.LayoutInflater.rInflate(LayoutInflater.java:758) 在 android.view.LayoutInflater.rInflate(LayoutInflater.java:758) 在 android.view.LayoutInflater.rInflate(LayoutInflater.java:758) 在 android.view.LayoutInflater.rInflate(LayoutInflater.java:758) 在 android.view.LayoutInflater.parseInclude(LayoutInflater.java:839) 在 android.view.LayoutInflater.rInflate(LayoutInflater.java:745) 在 android.view.LayoutInflater.inflate(LayoutInflater.java:492) 在 android.view.LayoutInflater.inflate(LayoutInflater.java:397) 在 android.view.LayoutInflater.inflate(LayoutInflater.java:353) 在 android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:280) 在 android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:140) 在 android.app.Activity.performCreate(Activity.java:5231) 在 android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087) 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2159) 在 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245) 在 android.app.ActivityThread.access$800(ActivityThread.java:135) 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196) 在 android.os.Handler.dispatchMessage(Handler.java:102) 在 android.os.Looper.loop(Looper.java:136) 在 android.app.ActivityThread.main(ActivityThread.java:5017) 在 java.lang.reflect.Method.invokeNative(Method.java) 在 java.lang.reflect.Method.invoke(Method.java:515) 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595) 在 dalvik.system.NativeStart.main(NativeStart.java)
我正在使用Edittext
和TextInputLayout
一些android xml
的代码:
<android.support.design.widget.TextInputLayout
android:layout_
android:layout_
android:layout_weight="1"
app:hintTextAppearance="@style/TextAppearance.App.TextInputLayout"
>
<EditText
android:id="@+id/et1"
android:layout_
android:layout_
android:hint="Notes"
android:textSize="@dimen/edit_text_size"/>
</android.support.design.widget.TextInputLayout>
dimens.xml
<dimen name="edit_text_size">22sp</dimen>
第 38 行:我在布局中定义了第一个 Editext,存在膨胀问题:
在res/value/styles
和res/value-sw720dp
中,我定义了提示文本的样式:
<style name="TextAppearance.App.TextInputLayout" parent="@android:style/TextAppearance">
<item name="android:textColor">@color/view_green</item>
<item name="android:textSize">20sp</item>
</style>
我不知道为什么会发生这种崩溃!请帮忙
【问题讨论】:
你在给定的 sn-p 中的第 38 行是哪一行? 您确定在每个res/values*/
文件夹中都定义了edit_text_size
维度吗?特别是在res/values/
。
你能发布你的 build.gradle 文件吗
@vidulaJ in java code line#38 is setContentView
in onCreate
那一行是指xml文件中的一行。我在问给定的 sn-p 上的哪一行。给定的xml中有14行,是哪一行?
【参考方案1】:
我在你的 logcat 上看到了这个错误
java.lang.UnsupportedOperationException: Can't convert to dimension: type=0x1
尝试将android:textSize="@dimen/edit_text_size"/>
更改为任意值
【讨论】:
我已经在dimens
中定义了编辑文本大小,请查看我编辑的问题【参考方案2】:
尝试清理您的项目并重建它,注意周围是否有多余的 Invaild char
【讨论】:
我也尝试过发布版本时崩溃了 任何设备崩溃?以上是关于在 Android 平板电脑版本 4.4.2 中膨胀类 EditText 时出错的主要内容,如果未能解决你的问题,请参考以下文章
Meteor Android 应用程序无法在 4.1.1 上安装
将 Cordova 6.1.1 项目添加到 Android 4.4.2 版本
在 Android 4.4.2 上创建 TextInputLayout 时膨胀类 EditText 时出错:
系统去掉 Android 4.4.2 的StatusBar和NavigationBar