web-dev-qa-db-ja.com

Resources $ NotFoundException:ファイルres / drawable / abc_ic_ab_back_material.xml

JDKのゼロ値エラーを解決した後、今私はこの問題に直面しています。私は少し研究をしましたが、私は要点をつかむことができないようです。ログエラーは次のとおりです。

FATAL EXCEPTION: main
 E/AndroidRuntime: Java.lang.RuntimeException: Unable to start activity ComponentInfo{.MainActivity}: Android.content.res.Resources$NotFoundException: File res/drawable/abc_ic_ab_back_material.xml from drawable resource ID #0x7f020013
 E/AndroidRuntime:     at Android.app.ActivityThread.performLaunchActivity(ActivityThread.Java:2204)
 E/AndroidRuntime:     at Android.app.ActivityThread.handleLaunchActivity(ActivityThread.Java:2254)
 E/AndroidRuntime:     at Android.app.ActivityThread.access$600(ActivityThread.Java:141)
 E/AndroidRuntime:     at Android.app.ActivityThread$H.handleMessage(ActivityThread.Java:1234)
 E/AndroidRuntime:     at Android.os.Handler.dispatchMessage(Handler.Java:99)
 E/AndroidRuntime:     at Android.os.Looper.loop(Looper.Java:137)
 E/AndroidRuntime:     at Android.app.ActivityThread.main(ActivityThread.Java:5069)
 E/AndroidRuntime:     at Java.lang.reflect.Method.invokeNative(Native Method)
 E/AndroidRuntime:     at Java.lang.reflect.Method.invoke(Method.Java:511)
 E/AndroidRuntime:     at com.Android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.Java:793)
 E/AndroidRuntime:     at com.Android.internal.os.ZygoteInit.main(ZygoteInit.Java:560)
 E/AndroidRuntime:     at dalvik.system.NativeStart.main(Native Method)
 E/AndroidRuntime:  Caused by: Android.content.res.Resources$NotFoundException: File res/drawable/abc_ic_ab_back_material.xml from drawable resource ID #0x7f020013
 E/AndroidRuntime:     at Android.content.res.Resources.loadDrawable(Resources.Java:1953)
 E/AndroidRuntime:     at Android.content.res.Resources.getDrawable(Resources.Java:660)
 E/AndroidRuntime:     at Android.support.v4.content.ContextCompat.getDrawable(ContextCompat.Java:354)
 E/AndroidRuntime:     at Android.support.v7.widget.AppCompatDrawableManager.getDrawable(AppCompatDrawableManager.Java:193)
 E/AndroidRuntime:     at Android.support.v7.widget.AppCompatDrawableManager.getDrawable(AppCompatDrawableManager.Java:181)
 E/AndroidRuntime:     at Android.support.v7.widget.AppCompatDrawableManager.checkVectorDrawableSetup(AppCompatDrawableManager.Java:689)
 E/AndroidRuntime:     at Android.support.v7.widget.AppCompatDrawableManager.getDrawable(AppCompatDrawableManager.Java:186)
 E/AndroidRuntime:     at Android.support.v7.widget.TintTypedArray.getDrawableIfKnown(TintTypedArray.Java:77)
 E/AndroidRuntime:     at Android.support.v7.app.AppCompatDelegateImplBase.<init>(AppCompatDelegateImplBase.Java:83)
 E/AndroidRuntime:     at Android.support.v7.app.AppCompatDelegateImplV7.<init>(AppCompatDelegateImplV7.Java:146)
 E/AndroidRuntime:     at Android.support.v7.app.AppCompatDelegateImplV11.<init>(AppCompatDelegateImplV11.Java:28)
 E/AndroidRuntime:     at Android.support.v7.app.AppCompatDelegateImplV14.<init>(AppCompatDelegateImplV14.Java:41)
 E/AndroidRuntime:     at Android.support.v7.app.AppCompatDelegate.create(AppCompatDelegate.Java:193)
 E/AndroidRuntime:     at Android.support.v7.app.AppCompatDelegate.create(AppCompatDelegate.Java:173)
 E/AndroidRuntime:     at Android.support.v7.app.AppCompatActivity.getDelegate(AppCompatActivity.Java:511)
 E/AndroidRuntime:     at Android.support.v7.app.AppCompatActivity.onCreate(AppCompatActivity.Java:71)
 E/AndroidRuntime:     at .MainActivity.onCreate(MainActivity.Java:29)
 E/AndroidRuntime:     at Android.app.Activity.performCreate(Activity.Java:5104)
 E/AndroidRuntime:     at Android.app.Instrumentation.callActivityOnCreate(Instrumentation.Java:1092)
 E/AndroidRuntime:     at Android.app.ActivityThread.performLaunchActivity(ActivityThread.Java:2148)
 E/AndroidRuntime:     at Android.app.ActivityThread.handleLaunchActivity(ActivityThread.Java:2254) 
 E/AndroidRuntime:     at Android.app.ActivityThread.access$600(ActivityThread.Java:141) 
 E/AndroidRuntime:     at Android.app.ActivityThread$H.handleMessage(ActivityThread.Java:1234) 
 E/AndroidRuntime:     at Android.os.Handler.dispatchMessage(Handler.Java:99) 
 E/AndroidRuntime:     at Android.os.Looper.loop(Looper.Java:137) 
 E/AndroidRuntime:     at Android.app.ActivityThread.main(ActivityThread.Java:5069) 
 E/AndroidRuntime:     at Java.lang.reflect.Method.invokeNative(Native Method) 
 E/AndroidRuntime:     at Java.lang.reflect.Method.invoke(Method.Java:511) 
 E/AndroidRuntime:     at com.Android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.Java:793) 
 E/AndroidRuntime:     at com.Android.internal.os.ZygoteInit.main(ZygoteInit.Java:560) 
 E/AndroidRuntime:     at dalvik.system.NativeStart.main(Native Method) 
 E/AndroidRuntime:  Caused by: org.xmlpull.v1.XmlPullParserException: Binary XML file line #17: invalid drawable tag vector
 E/AndroidRuntime:     at Android.graphics.drawable.Drawable.createFromXmlInner(Drawable.Java:881)
 E/AndroidRuntime:     at Android.graphics.drawable.Drawable.createFromXml(Drawable.Java:822)
 E/AndroidRuntime:     at Android.content.res.Resources.loadDrawable(Resources.Java:1950)
 E/AndroidRuntime:     at Android.content.res.Resources.getDrawable(Resources.Java:660) 
 E/AndroidRuntime:     at Android.support.v4.content.ContextCompat.getDrawable(ContextCompat.Java:354) 
 E/AndroidRuntime:     at Android.support.v7.widget.AppCompatDrawableManager.getDrawable(AppCompatDrawableManager.Java:193) 
 E/AndroidRuntime:     at Android.support.v7.widget.AppCompatDrawableManager.getDrawable(AppCompatDrawableManager.Java:181) 
 E/AndroidRuntime:     at Android.support.v7.widget.AppCompatDrawableManager.checkVectorDrawableSetup(AppCompatDrawableManager.Java:689) 
 E/AndroidRuntime:     at Android.support.v7.widget.AppCompatDrawableManager.getDrawable(AppCompatDrawableManager.Java:186) 
 E/AndroidRuntime:     at Android.support.v7.widget.TintTypedArray.getDrawableIfKnown(TintTypedArray.Java:77) 
 E/AndroidRuntime:     at Android.support.v7.app.AppCompatDelegateImplBase.<init>(AppCompatDelegateImplBase.Java:83) 
 E/AndroidRuntime:     at Android.support.v7.app.AppCompatDelegateImplV7.<init>(AppCompatDelegateImplV7.Java:146) 
 E/AndroidRuntime:     at Android.support.v7.app.AppCompatDelegateImplV11.<init>(AppCompatDelegateImplV11.Java:28) 
 E/AndroidRuntime:     at Android.support.v7.app.AppCompatDelegateImplV14.<init>(AppCompatDelegateImplV14.Java:41) 
 E/AndroidRuntime:     at Android.support.v7.app.AppCompatDelegate.create(AppCompatDelegate.Java:193) 
 E/AndroidRuntime:     at Android.support.v7.app.AppCompatDelegate.create(AppCompatDelegate.Java:173) 
 E/AndroidRuntime:     at Android.support.v7.app.AppCompatActivity.getDelegate(AppCompatActivity.Java:511) 
 E/AndroidRuntime:     at Android.support.v7.app.AppCompatActivity.onCreate(AppCompatActivity.Java:71) 
 E/AndroidRuntime:     at .MainActivity.onCreate(MainActivity.Java:29) 
 E/AndroidRuntime:     at Android.app.Activity.performCreate(Activity.Java:5104) 
 E/AndroidRuntime:     at Android.app.Instrumentation.callActivityOnCreate(Instrumentation.Java:1092) 
 E/AndroidRuntime:     at Android.app.ActivityThread.performLaunchActivity(ActivityThread.Java:2148) 
 E/AndroidRuntime:     at Android.app.ActivityThread.handleLaunchActivity(ActivityThread.Java:2254) 
 E/AndroidRuntime:     at Android.app.ActivityThread.access$600(ActivityThread.Java:141) 
 E/AndroidRuntime:     at Android.app.ActivityThread$H.handleMessage(ActivityThread.Java:1234) 
 E/AndroidRuntime:     at Android.os.Handler.dispatchMessage(Handler.Java:99) 
 E/AndroidRuntime:     at Android.os.Looper.loop(Looper.Java:137) 
 E/AndroidRuntime:     at Android.app.ActivityThread.main(ActivityThread.Java:5069) 
 E/AndroidRuntime:     at Java.lang.reflect.Method.invokeNative(Native Method) 
 E/AndroidRuntime:     at Java.lang.reflect.Method.invoke(Method.Java:511) 
 E/AndroidRuntime:     at com.Android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.Java:793) 
 E/AndroidRuntime:     at com.Android.internal.os.ZygoteInit.main(ZygoteInit.Java:560) 
 E/AndroidRuntime:     at dalvik.system.NativeStart.main(Native Method) 

私はそれが何であるかについて本当に混乱しています、私は読んでエラーに到達することはできません:

私のアプリ:gradleはこれです:

apply plugin: 'com.Android.application'

Android {



    compileSdkVersion 23
    buildToolsVersion "24.0.2"




    defaultConfig {

        applicationId "me.me2.com.myapp"
        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:design:23.4.0'
    compile 'com.Android.support:recyclerview-v7:23.4.0'
    compile 'com.Android.support:cardview-v7:23.4.0'


    compile 'com.google.firebase:firebase-storage:9.4.0'
    compile 'com.google.firebase:firebase-database:9.4.0'
    compile 'com.google.firebase:firebase-auth:9.4.0'
    compile 'com.firebaseui:firebase-ui-database:0.4.4'


    compile 'com.squareup.picasso:picasso:2.5.2'





}

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

ここに私のスタイルフォルダがあります:

<resources>

    <!-- Base application theme. -->
    <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
        <!-- Customize your theme here. -->
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
    </style>
    <style name="AppTheme.NoActionBar">
        <item name="windowActionBar">false</item>
        <item name="windowNoTitle">true</item>
    </style>
    <style name="AppTheme.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar" />
    <style name="AppTheme.PopupOverlay" parent="ThemeOverlay.AppCompat.Light" />

    <style name="Divider">
        <item name="Android:layout_width">match_parent</item>
        <item name="Android:layout_height">1dp</item>
        <item name="Android:background">?android:attr/listDivider</item>
    </style>

</resources>

そして、必要に応じて私のmainactivity.class:

public class MainActivity extends AppCompatActivity {

    VideoView videoView;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);


        // VideoView

        videoView = (VideoView) findViewById(R.id.videoview);
        videoView.setVideoURI(Uri.parse("Android.resource://"+getPackageName() + "/" +R.raw.video));
        videoView.requestFocus();

        /**
         * Loop
         */
        videoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
            @Override
            public void onPrepared(MediaPlayer mp) {
                videoView.start();
                mp.setLooping(true);

            }
        });




    }


    public void Login(View view) {
        Intent intent = new Intent(this, FragmentMain.class); 
        startActivity(intent);

       // finish();

    }

    public void Registro(View view) {
        Intent intent = new Intent(this, Registro.class);
        startActivity(intent);
    }





    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.menu_main, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();

        //noinspection SimplifiableIfStatement
        if (id == R.id.action_settings) {
            return true;
        }

        return super.onOptionsItemSelected(item);
    }
}

ありがとう。

34
user6099735

Gradle Plugin 2.0を使用している場合は、gradleを変更する必要があります。

// Gradle Plugin 2.0+  
 Android {  
   defaultConfig {  
     vectorDrawables.useSupportLibrary = true  
    }  
 }  

Gradle 1.5を使用している場合、前の代わりに使用します:

// Gradle Plugin 1.5  
 Android {  
   defaultConfig {  
     // Stops the Gradle plugin's automatic rasterization of vectors
     generatedDensities = []  
  }  
  // Flag to tell aapt to keep the attribute ids around
  // This is handled for you by the 2.0+ Gradle Plugin  
  aaptOptions {  
    additionalParameters "--no-version-vectors"  
  }  
 }  

次も確認してください: 23.2.0にAndroidサポートライブラリを更新するとエラーが発生します:XmlPullParserExceptionバイナリXMLファイルの行#17 <vector>タグにはviewportWidth> 0が必要です

Androidサポートライブラリ参照: ベクターDrawableとアニメーションベクターDrawableをサポート

Androidサポートの依存関係も更新します

compile 'com.Android.support:appcompat-v7:23.4.0'
compile 'com.Android.support:design:23.4.0'
compile 'com.Android.support:recyclerview-v7:23.4.0'
compile 'com.Android.support:cardview-v7:23.4.0'

compile 'com.Android.support:appcompat-v7:24.2.0'
compile 'com.Android.support:design:24.2.0'
compile 'com.Android.support:recyclerview-v7:24.2.0'
compile 'com.Android.support:cardview-v7:24.2.0'

既に24.0.2のバージョンのビルドツールを使用しているため。

27
piotrek1543

他のソリューションのいずれかが機能しない場合は、アクティビティにこの行を追加できます

static {
    AppCompatDelegate.setCompatVectorFromResourcesEnabled(true);
}

そしてもちろん、gradleとappcompatを最新バージョンに更新します。これは私の場合はうまくいきました。

26
ashraful

これらのどれも私にとってはうまくいきませんでした。しかし、これは:

変化する

Android:src="@drawable/your_drawable"

app:srcCompat="@drawable/your_drawable"

13
ono

Xamarin.Android.Support.Design 24.0.2を使用してXamarin.Androidでこの問題に遭遇しました。ここに私がそれを解決した方法があります:

次の行をアプリケーションクラスOnCreateに追加しました。

AppCompatDelegate.CompatVectorFromResourcesEnabled = true;

置換:

var upArrow = ContextCompat.GetDrawable(this, Resource.Drawable.abc_ic_ab_back_material);

と:

var upArrow = ResourcesCompat.GetDrawable(Resources, Resource.Drawable.abc_ic_ab_back_material, null);
7
pnavk

このページはgoogle Android.content.res.Resources$NotFoundException: File res/drawable/の最初の結果であるため、この例外はfoo.xmlに不適切なコードが含まれているによって引き起こされる可能性があることを共有したいと思います。

例えばfoo.xml

<layer-list xmlns:Android="http://schemas.Android.com/apk/res/Android">

    <item Android:id="@Android:id/background">
        <shape>
            <size Android:height="@Android:style/Widget.ProgressBar.Horizontal" />
            <corners Android:radius="5dip" />
            <gradient
                Android:startColor="#000000"
                Android:centerY="0.75"
                Android:angle="270"
                />
        </shape>
    </item>
</layer-list>

このxmlには<size Android:height="@Android:style/Widget.ProgressBar.Horizontal" />が含まれていますが、コンパイルは成功しましたが、実行時に例外がスローされ、アプリによって異なります。

6
林果皞

アクティビティで次のように使用します。

public class MainActivity extends AppCompatActivity {
    static {
        AppCompatDelegate.setCompatVectorFromResourcesEnabled(true);
     }
  ...
}

あなたのbuild.gradleでこれ:

Android {
    ...

     defaultConfig {
         ....
         vectorDrawables.useSupportLibrary = true
    }

}

そしてあなたのxmlで:

app:srcCompat="@drawable/your_icon"
4
AissaDevLab

この問題がありました。

ApplicationクラスのonCreate()メソッドで、次を追加します。

AppCompatDelegate.setCompatVectorFromResourcesEnabled(true);

...また、ImageViewの代わりにAppCompatImageViewを使用します。

例:BaseApplication.class:

public class BaseApplication extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
        //Your other code here...
        AppCompatDelegate.setCompatVectorFromResourcesEnabled(true);
    }
}

XML

<androidx.appcompat.widget.AppCompatImageView
        Android:id="@+id/yourIvId"
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content" />
1
AceStan

あなたの質問に特に関連しているわけではありませんが、そのエラーを探している間にここにいるすべての人のためにこの問題を解決できるかもしれません。

私にとっては、プロジェクトにインポートしたSVGファイルに問題がありました。 XMLのパスの1つに空のpathDataがあり、それがPixel XL、Samsung Galaxy S7などの一部のデバイスでクラッシュを引き起こしていました...

したがって、SVGを画像ソースとして使用している場合は、画像のインポートされたXMLを再確認してください。

1
BVantur

OK

1.-上記のpiotrek1543のようにライブラリが更新されていることを確認します2.-必要であればSDKを更新します3.- gradleファイルを更新します(非常に重要)

classpath 'com.Android.tools.build:gradle:2.1.0'

次に、アプリプロジェクト> app> graddle> graddlewrapper.propertiesに移動して、追加します

distributionUrl=https://services.gradle.org/distributions/gradle-2.10-all.Zip

4.- compile compileSdkVersionを24に変更し、buildToolsVersion "24.0.2"に変更します(SDKの依存関係が最新であることを確認してください

楽しんで

1
user6099735

上記のすべてのソリューションを試しました。私には何も機能しませんでした。私のために働いた唯一のことは、このバグが修正されているため、すべてのサポートライブラリを最新バージョンに更新することです。だから私は簡単にgradleファイルで以下のことをしました; SDKとサポートを25に更新しました。

Android {
    compileSdkVersion 25
    buildToolsVersion "25"
  defaultConfig {
        targetSdkVersion 25
   }

}
In dependencies 

    compile 'com.Android.support:appcompat-v7:25.1.0'
    compile 'com.Android.support:design:25.1.0'
    compile 'com.Android.support:recyclerview-v7:25.1.0'
1
Googler

私の場合、XMLにはAndroid:endXが含まれており、24以上をサポートしています。

0
sajad abbasi

ドロアブル内で?attrを使用している場合、これがエラーの原因である可能性があります。

すべてのAndroidバージョンで使用できるように、Vector Drawableに置き換えることを検討してください。

交換

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:Android="http://schemas.Android.com/apk/res/Android">
    <item>
        <shape Android:shape="rectangle">
            <solid Android:color="?attr/navigationIconColor" />
        </shape>
    </item>
</selector>

と:

<vector xmlns:Android="http://schemas.Android.com/apk/res/Android"
    Android:width="37dp"
    Android:height="5dp"
    Android:viewportWidth="37"
    Android:viewportHeight="5">
  <path
      Android:pathData="M2.5,0h32C35.9,0 37,1.1 37,2.5l0,0C37,3.9 35.9,5 34.5,5h-32C1.1,5 0,3.9 0,2.5l0,0C0,1.1 1.1,0 2.5,0z"
      Android:fillColor="?attr/navigationIconColor"/>
</vector>

0
Morteza Rastgoo

Kotlin-stdlib依存関係の変更:

implementation "org.jetbrains.kotlin:kotlin-stdlib-jre7:1.2.0"

implementation "org.jetbrains.kotlin:kotlin-stdlib:1.2.0"はエラーを修正しました。

0
vovahost