在 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)

我正在使用EdittextTextInputLayout 一些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/stylesres/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"/&gt; 更改为任意值

【讨论】:

我已经在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

模拟器中缺少 Google Play 服务(Android 4.4.2)

安卓4.4.4下载地址 android安卓4.4.4官方固件下载