【问题标题】:InflateException: Binary XML file line #19: Error inflating class EditTextInflateException:二进制 XML 文件第 19 行:膨胀类 EditText 时出错
【发布时间】:2016-12-12 22:23:23
【问题描述】:
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.nuku.mc.august/com.nuku.mc.august.LoginActivity}: android.view.InflateException: Binary XML file line #19: Error inflating class EditText.

这是我的活动登录名:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:gravity="center"
    android:orientation="vertical"
    android:id="@+id/login_layout"
    android:padding="10dp" >


    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:orientation="vertical"
        android:paddingLeft="20dp"
        android:paddingRight="20dp" >

        <EditText
            android:id="@+id/email"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_marginBottom="10dp"
            android:hint="@string/hint_email"
            android:inputType="textEmailAddress"
            android:padding="10dp"
            android:singleLine="true"
            android:textColor="@color/white"
            android:textColorHint="@color/white"
            android:drawableLeft="@drawable/ic_email"
            android:background="@null"/>

        <EditText
            android:id="@+id/password"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_marginBottom="10dp"
            android:background="@null"
            android:hint="@string/hint_password"
            android:inputType="textPassword"
            android:padding="10dp"
            android:singleLine="true"
            android:drawableLeft="@drawable/ic_lock_icon_png"
            android:textColor="@color/white"
            android:textColorHint="@color/white"
           />

        <!-- Login Button -->

        <android.support.v7.widget.AppCompatButton
            android:id="@+id/btn_login"
            android:layout_width="147dp"
            android:layout_gravity="center"
            android:layout_height="wrap_content"
            android:background="@drawable/normal"
            android:textColor="@color/white"
            android:textStyle="bold|italic"
            android:layout_marginTop="24dp"
            android:layout_marginBottom="24dp"
            android:padding="12dp"
            android:text="login"
            android:alpha="0.6"

            />


    </LinearLayout>
</LinearLayout>

设置活动背景图片也有错误,我发现它很大,我该怎么办?我寻找了一些解决方案,但它们似乎很困难。请提出更简单的建议。

日志:

            java.lang.RuntimeException: Unable to start activity ComponentInfo{com.nuku.mc.august/com.nuku.mc.august.LoginActivity}: android.view.InflateException: Binary XML file line #2: Error inflating class <unknown>
                                                                at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2343)
                                                                at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2395)
                                                                at android.app.ActivityThread.access$600(ActivityThread.java:162)
                                                                at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1364)
                                                                at android.os.Handler.dispatchMessage(Handler.java:107)
                                                                at android.os.Looper.loop(Looper.java:194)
                                                                at android.app.ActivityThread.main(ActivityThread.java:5371)
                                                                at java.lang.reflect.Method.invokeNative(Native Method)
                                                                at java.lang.reflect.Method.invoke(Method.java:525)
                                                                at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:833)
                                                                at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
                                                                at dalvik.system.NativeStart.main(Native Method)
                                                             Caused by: android.view.InflateException: Binary XML file line #2: Error inflating class <unknown>
                                                                at android.view.LayoutInflater.createView(LayoutInflater.java:613)
                                                                at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56)
                                                                at android.view.LayoutInflater.onCreateView(LayoutInflater.java:660)
                                                                at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:685)
                                                                at android.view.LayoutInflater.inflate(LayoutInflater.java:466)
                                                                at android.view.LayoutInflater.inflate(LayoutInflater.java:396)
                                                                at android.view.LayoutInflater.inflate(LayoutInflater.java:352)
                                                                at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:280)
                                                                at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:140)
                                                                at com.nuku.mc.august.LoginActivity.onCreate(LoginActivity.java:45)
                                                                at android.app.Activity.performCreate(Activity.java:5122)
                                                                at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1081)
                                                                at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2307)
                                                                at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2395) 
                                                                at android.app.ActivityThread.access$600(ActivityThread.java:162) 
                                                                at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1364) 
                                                                at android.os.Handler.dispatchMessage(Handler.java:107) 
                                                                at android.os.Looper.loop(Looper.java:194) 
                                                                at android.app.ActivityThread.main(ActivityThread.java:5371) 
                                                                at java.lang.reflect.Method.invokeNative(Native Method) 
                                                                at java.lang.reflect.Method.invoke(Method.java:525) 
                                                                at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:833) 
                                                                at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600) 
                                                                at dalvik.system.NativeStart.main(Native Method) 
                                                             Caused by: java.lang.reflect.InvocationTargetException
                                                                at java.lang.reflect.Constructor.constructNative(Native Method)
                                                                at java.lang.reflect.Constructor.newInstance(Constructor.java:417)
                                                                at android.view.LayoutInflater.createView(LayoutInflater.java:587)
                                                                at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56) 
                                                                at android.view.LayoutInflater.onCreateView(LayoutInflater.java:660) 
                                                                at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:685) 
                                                                at android.view.LayoutInflater.inflate(LayoutInflater.java:466) 
                                                                at android.view.LayoutInflater.inflate(LayoutInflater.java:396) 
                                                                at android.view.LayoutInflater.inflate(LayoutInflater.java:352) 
                                                                at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:280) 
                                                                at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:140) 
                                                                at com.nuku.mc.august.LoginActivity.onCreate(LoginActivity.java:45) 
                                                                at android.app.Activity.performCreate(Activity.java:5122) 
                                                                at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1081) 
                                                                at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2307) 
                                                                at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2395) 
                                                                at android.app.ActivityThread.access$600(ActivityThread.java:162) 
                                                                at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1364) 
                                                                at android.os.Handler.dispatchMessage(Handler.java:107) 
                                                                at android.os.Looper.loop(Looper.java:194) 
                                                                at android.app.ActivityThread.main(ActivityThread.java:5371) 
                                                                at java.lang.reflect.Method.invokeNative(Native Method) 
                                                                at java.lang.reflect.Method.invoke(Method.java:525) 
                                                                at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:833) 
                                                                at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600) 
                                                                at dalvik.system.NativeStart.main(Native Method) 
                                                             Caused by: android.content.res.Resources$NotFoundException: Resource is not a Drawable (color or path): TypedValue{t=0x1/d=0x7f02005a a=-1 r=0x7f02005a}
                                                                at android.content.res.Resources.loadDrawable(Resources.java:1967)
                                                                at android.content.res.TypedArray.getDrawable(TypedArray.java:601)
                                                                at android.view.View.<init>(View.java:3338)
                                                                at android.view.ViewGroup.<init>(ViewGroup.java:436)
                                                                at android.widget.LinearLayout.<init>(LinearLayout.java:176)
                                                                at android.widget.LinearLayout.<init>(LinearLayout.java:172)
                                                                at java.lang.reflect.Constructor.constructNative(Native Method) 
                                                                at java.lang.reflect.Constructor.newInstance(Constructor.java:417) 
                                                                at android.view.LayoutInflater.createView(LayoutInflater.java:587) 
                                                                at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56) 
                                                                at android.view.LayoutInflater.onCreateView(LayoutInflater.java:660) 
                                                                at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:685) 
                                                                at android.view.LayoutInflater.inflate(LayoutInflater.java:466) 
                                                                at android.view.LayoutInflater.inflate(LayoutInflater.java:396) 
                                                                at android.view.LayoutInflater.inflate(LayoutInflater.java:352) 
                                                                at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:280) 
                                                                at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:140) 
                                                                at com.nuku.mc.august.LoginActivity.onCreate(LoginActivity.java:45) 
                                                                at android.app.Activity.performCreate(Activity.java:5122) 
                                                                at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1081) 
                                                                at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2307) 
                                                                at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2395) 
                                                                at android.app.ActivityThread.access$600(ActivityThread.java:162) 
                                                                at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1364) 
                                                                at android.os.Handler.dispatchMessage(Handler.java:107) 
                                                                at android.os.Looper.loop(Looper.java:194) 
                                                                at android.app.ActivityThread.main(ActivityThread.java:5371) 
                                                                at java.lang.reflect.Method.invokeNative(Native Method) 
                                                                at java.lang.reflect.Method.invoke(Method.java:525) 
                                                                at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:833) 
                                                                at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600) 
                                                                at dalvik.system.NativeStart.main(Native Method) 

这是我的 build.gradle 文件

apply plugin: 'com.android.application'

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.3"

    defaultConfig {
        applicationId "com.nuku.mc.august"
        minSdkVersion 15
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:23.4.0'
    compile 'com.android.support:support-v4:23.4.0'
    compile 'com.android.support:design:23.4.0'

    compile 'com.squareup.retrofit:retrofit:1.9.0'
}

【问题讨论】:

  • 你能把异常的整个logcat贴出来吗?它可能包含一些有用的东西,例如Caused by: 部分。
  • @Vucko 我已经用 logcats 编辑了这个问题。
  • 正如您的 logcat 所说,您的可绘制对象没有被正确引用。检查。另外,清理你的项目。
  • 是的,正是这个 ^ 。像这样检查您正在使用的两个可绘制对象:android:drawableLeft="@drawable/ic_lock_icon_png"。我认为这就是问题所在。评论他们两个,看看错误是否再次发生,如果没有,你至少有一个问题。尤其是我提到的那个我觉得很可疑,因为名字中有_png
  • 引起:android.content.res.Resources$NotFoundException:资源不是Drawable(颜色或路径):TypedValue{t=0x1/d=0x7f02005a a=-1 r=0x7f02005a} -这条线清楚地表明其中一个资源不是可绘制的。检查 ic_email 或 ic_lock_icon 是否正确。

标签: android xml android-linearlayout


【解决方案1】:

问题出在您的android:drawableLeft="@drawable/ic_lock_icon_png" drawable left,right 在旧设备中不起作用,因此请将其删除并检查

如果您想要drawableleft,则将您的矢量资产 "ic_lock_icon_png" 更改为图像资产或 jpeg。 (推荐图片资源)

【讨论】:

    猜你喜欢
    • 2014-07-05
    • 1970-01-01
    • 2016-03-11
    • 2022-01-17
    • 1970-01-01
    • 2016-01-12
    • 2016-11-02
    • 2018-06-16
    相关资源
    最近更新 更多