由于:android.content.res.Resources$NotFoundException: 从可绘制资源ID#0x7f02007e中的res / drawable / ic_email_black.xml文件找不到。

5
当我在模拟器中测试时,一切正常。但是当我在真实设备Android4.4(19)上进行测试时,它会给出以下日志错误。我尝试了许多替代方案,但都不起作用。
同时,在Java文件中添加AppCompatDelegate.setCompatVectorFromResourcesEnabled(true); 我的Gradle版本是 `distributionUrl=https://services.gradle.org/distributions/gradle-4.1-milestone-1-all.zip 以下是我的日志错误:
Caused by: android.view.InflateException: Binary XML file line #11: Error inflating class EditText
    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:720)
    at android.view.LayoutInflater.rInflate(LayoutInflater.java:762) 
    at android.view.LayoutInflater.inflate(LayoutInflater.java:354)
    at android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:289)
    at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:139)
    at com.redrockdigimark.doot.activities.OwnerLogin.onCreate(OwnerLogin.java:27)
    at android.app.Activity.performCreate(Activity.java:5442)
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1094)
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2393)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2493) 
    at android.app.ActivityThread.access$800(ActivityThread.java:166) 
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1283) 
    at android.os.Handler.dispatchMessage(Handler.java:102) 
    at android.os.Looper.loop(Looper.java:136) 
    at android.app.ActivityThread.main(ActivityThread.java:5584) 
    at java.lang.reflect.Method.invokeNative(Native Method) 
    at java.lang.reflect.Method.invoke(Method.java:515) 
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1268) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1084) 
    at dalvik.system.NativeStart.main(Native Method) 
 Caused by: android.content.res.Resources$NotFoundException: File res/drawable/ic_email_black.xml from drawable resource ID #0x7f02007e
    at android.content.res.Resources.loadDrawable(Resources.java:3451)
    at android.content.res.TypedArray.getDrawable(TypedArray.java:614)
    at android.widget.TextView.<init>(TextView.java:896)
    at android.widget.EditText.<init>(EditText.java:60)
    at android.support.v7.widget.AppCompatEditText.<init>(AppCompatEditText.java:62)
    at android.support.v7.widget.AppCompatEditText.<init>(AppCompatEditText.java:58)
    at android.support.v7.app.AppCompatViewInflater.createView(AppCompatViewInflater.java:112)
    at android.support.v7.app.AppCompatDelegateImplV9.createView(AppCompatDelegateImplV9.java:1026)
    at android.support.v7.app.AppCompatDelegateImplV9.onCreateView(AppCompatDelegateImplV9.java:1083)
    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:691)
    at android.view.LayoutInflater.rInflate(LayoutInflater.java:762) 
    at android.view.LayoutInflater.rInflate(LayoutInflater.java:771) 
    at android.view.LayoutInflater.inflate(LayoutInflater.java:499) 
    at android.view.LayoutInflater.inflate(LayoutInflater.java:398) 
    at android.view.LayoutInflater.inflate(LayoutInflater.java:354) 
    at android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:289) 
    at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:139) 
    at com.redrockdigimark.doot.activities.OwnerLogin.onCreate(OwnerLogin.java:27) 
    at android.app.Activity.performCreate(Activity.java:5442) 
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1094) 
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2393) 
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2493) 
    at android.app.ActivityThread.access$800(ActivityThread.java:166) 
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1283) 
    at android.os.Handler.dispatchMessage(Handler.java:102) 
    at android.os.Looper.loop(Looper.java:136) 
    at android.app.ActivityThread.main(ActivityThread.java:5584) 
    at java.lang.reflect.Method.invokeNative(Native Method) 
    at java.lang.reflect.Method.invoke(Method.java:515) 
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1268) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1084) 
    at dalvik.system.NativeStart.main(Native Method) 
 Caused by: org.xmlpull.v1.XmlPullParserException: Binary XML file line #1: invalid drawable tag vector
    at android.graphics.drawable.Drawable.createFromXmlInner(Drawable.java:969)
    at android.graphics.drawable.Drawable.createFromXml(Drawable.java:913)
    at android.content.res.Resources.loadDrawable(Resources.java:3447)
    at android.content.res.TypedArray.getDrawable(TypedArray.java:614) 
    at android.widget.TextView.<init>(TextView.java:896) 
    at android.widget.EditText.<init>(EditText.java:60) 
    at android.support.v7.widget.AppCompatEditText.<init>(AppCompatEditText.java:62) 
    at android.support.v7.widget.AppCompatEditText.<init>(AppCompatEditText.java:58

应用级别的Gradle:

   apply plugin: 'com.android.application'


android {
    compileSdkVersion 26
    buildToolsVersion "26.0.1"
    defaultConfig {
        applicationId "com.redrockdigimark.doot"
        minSdkVersion 19
        targetSdkVersion 26
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
        vectorDrawables.useSupportLibrary = true
        multiDexEnabled true

    }
    buildTypes {
        release {
            shrinkResources true
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}


dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
        exclude group: 'com.android.support', module: 'support-annotations'
    })
    compile 'de.hdodenhof:circleimageview:2.1.0'
    compile 'com.android.support:appcompat-v7:26.0.0-alpha1'
    compile 'com.android.support:design:26.0.0-alpha1'
    compile 'com.android.support.constraint:constraint-layout:1.0.2'
    compile 'com.android.support:support-vector-drawable:26.0.0-alpha1'
    compile 'com.android.support:support-v4:26.0.0-alpha1'
    ------
    testCompile 'junit:junit:4.12'
}

apply plugin: 'com.google.gms.google-services'

XML文件:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/loginbg"
android:orientation="vertical">

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_margin="40dp">
    <EditText
        android:id="@+id/et_email"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="194dp"
        android:background="@color/white"
        android:drawableStart="@drawable/ic_email_black"
        android:drawablePadding="5dp"
        android:hint="Email"
        android:padding="10dp" />

    <EditText
        android:id="@+id/et_password"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/et_email"
        android:layout_marginTop="20dp"
        android:background="@color/white"
        android:drawableStart="@drawable/ic_logout"
        android:drawablePadding="5dp"
        android:drawableTint="@color/primary"
        android:hint="Password"
        android:padding="10dp" />


    <TextView
        android:id="@+id/txt_forgot_pwd"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentEnd="true"
        android:layout_below="@+id/et_password"
        android:layout_marginEnd="10dp"
        android:layout_marginTop="20dp"
        android:text="Forgot Password"
        android:textColor="@color/white" />

</RelativeLayout>

Edit: ic_email_black.xml

<vector xmlns:android="http://schemas.android.com/apk/res/android"
    android:width="24dp"
    android:height="24dp"
    android:viewportWidth="24.0"
    android:viewportHeight="24.0">
<path
    android:fillColor="#FFC107"
    android:pathData="M20,4L4,4c-1.1,0 -1.99,0.9 -1.99,2L2,18c0,1.1 0.9,2 2,2h16c1.1,0 2,-0.9 2,-2L22,6c0,-1.1 -0.9,-2 -2,-2zM20,8l-8,5 -8,-5L4,6l8,5 8,-5v2z"/>
</vector>

尝试在你的XML中添加,使用 app:srcCompat 添加。 - Muthukrishnan Rajendran
我使用 android:drawableLeft="@drawable/ic_email_black" 是因为我想在 EditText 中添加 drawable。 - user8039390
你能贴出res目录的屏幕截图吗? - Swati
EditText不支持在drawableStart中使用.xml,但如果我使用png,则可以正常工作。而且vector标签已经关闭。 - user8039390
1
请阅读此内容:https://dev59.com/Gek6XIcBkEYKwwoYC_n6。还有一个提示:始终阅读整个堆栈跟踪,而不仅仅是第一行。 - anemomylos
显示剩余5条评论
1个回答

0

EditText 显示错误。

 Binary XML file line #11: Error inflating class EditText

您的矢量图形也正常工作。可能是Android 19设备的问题。

尝试使用AppcompatEditText而不是EditText

<android.support.v7.widget.AppCompatEditText
        android:id="@+id/et_email"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="194dp"
        android:background="@color/white"
        android:drawableStart="@drawable/ic_email_black"
        android:drawablePadding="5dp"
        android:hint="Email"
        android:padding="10dp"/>

希望能有所帮助 :)

1
进入您的项目文件夹,删除构建文件夹并重新构建您的项目。 - Bhuvanesh BS
你能否在项目中发布使用资源文件 ic_email_black.xml 的位置?我需要查看您所使用的编辑文本 XML。 - Bhuvanesh BS
当我删除 android:drawableStart="@drawable/ic_email_black" 后,它可以正常工作。现在我该如何向EditText添加图标? - user8039390
看起来不错。请发布您的ic_email_black.xml文件,以便我们可以找到错误。 - Bhuvanesh BS
别忘了清理你的项目。 - Bhuvanesh BS
你的应用程序类中有这行代码吗?AppCompatDelegate.setCompatVectorFromResourcesEnabled(true); - Bhuvanesh BS

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接