365連休

にわかのandroidとかの開発メモ。

【事案】Android 4.4以下でDrawable Resource(ic_vector.xml)を使用するレイアウトがあると、実行時にandroid.content.res.Resources$Not-Found-Exceptionが発生する

解決編は次の記事を見てね。

 

Activityのレイアウトファイル内で、SeekBarにベクター形式のドローワブルリソースを使用したら、実行環境のAndroidバージョンによってアプリの起動に失敗するケースに遭遇。

LogCat say "android.content.res.Resources$NotFoundException"
Unfortunately, App name has stopped.
問題が発生したため、アプリ名を終了します。

Android4.1と4.4で発生。

Android5.1、6.0、7.1.1、8.1、9.0では問題なく動作。

Android4.4以下はだめっぽい。

 

環境

  • Android Studio3.4
  • compileSdkVersion 28
  • minSdkVersion 16
  • targetSdkVersion 28
  • Support Library28.0.0
  • Android SDK Build-Tools 28.0.3
  • Android Gradle Plug-in Version3.4.0
  • Gradle Version 5.1.1
  • ic_vector.xmlAndroid Studio付属のVector Asset Studioにて生成

 

     Caused by: android.content.res.Resources$NotFoundException: File res/drawable/ic_hoge.xml from drawable resource ID #0x7f06005d
        at android.content.res.Resources.loadDrawable(Resources.java:2101)
        at android.content.res.TypedArray.getDrawable(TypedArray.java:602)
        at android.widget.AbsSeekBar.<init>(AbsSeekBar.java:73)
        at android.widget.SeekBar.<init>(SeekBar.java:83)
        at android.support.v7.widget.AppCompatSeekBar.<init>(AppCompatSeekBar.java:47)
        at android.support.v7.widget.AppCompatSeekBar.<init>(AppCompatSeekBar.java:43)
        at android.support.v7.app.AppCompatViewInflater.createSeekBar(AppCompatViewInflater.java:239)
        at android.support.v7.app.AppCompatViewInflater.createView(AppCompatViewInflater.java:150)
        at android.support.v7.app.AppCompatDelegateImpl.createView(AppCompatDelegateImpl.java:1266)
        at android.support.v7.app.AppCompatDelegateImpl.onCreateView(AppCompatDelegateImpl.java:1316)
        at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:685)
        at android.view.LayoutInflater.rInflate(LayoutInflater.java:756)?
        at android.view.LayoutInflater.rInflate(LayoutInflater.java:759)?
        at android.view.LayoutInflater.inflate(LayoutInflater.java:492)?
        at android.view.LayoutInflater.inflate(LayoutInflater.java:397)?
        at android.view.LayoutInflater.inflate(LayoutInflater.java:353)?
        at android.support.v7.app.AppCompatDelegateImpl.setContentView(AppCompatDelegateImpl.java:469)?
        at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:140)?
        at *****.*******.*********.MainActivity.onCreate(MainActivity.java:96)?
        at android.app.Activity.performCreate(Activity.java:5231)?
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)?
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2159)?
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245)?
        at android.app.ActivityThread.access$800(ActivityThread.java:135)?
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)?
        at android.os.Handler.dispatchMessage(Handler.java:102)?
        at android.os.Looper.loop(Looper.java:136)?
        at android.app.ActivityThread.main(ActivityThread.java:5017)?
        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:779)?
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)?
        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:933)
        at android.graphics.drawable.Drawable.createFromXml(Drawable.java:877)
        at android.content.res.Resources.loadDrawable(Resources.java:2097)
        at android.content.res.TypedArray.getDrawable(TypedArray.java:602)?
        at android.widget.AbsSeekBar.<init>(AbsSeekBar.java:73)?
        at android.widget.SeekBar.<init>(SeekBar.java:83)?
        at android.support.v7.widget.AppCompatSeekBar.<init>(AppCompatSeekBar.java:47)?
        at android.support.v7.widget.AppCompatSeekBar.<init>(AppCompatSeekBar.java:43)?
        at android.support.v7.app.AppCompatViewInflater.createSeekBar(AppCompatViewInflater.java:239)?
        at android.support.v7.app.AppCompatViewInflater.createView(AppCompatViewInflater.java:150)?
        at android.support.v7.app.AppCompatDelegateImpl.createView(AppCompatDelegateImpl.java:1266)?
        at android.support.v7.app.AppCompatDelegateImpl.onCreateView(AppCompatDelegateImpl.java:1316)?
        at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:685)?
        at android.view.LayoutInflater.rInflate(LayoutInflater.java:756)?
        at android.view.LayoutInflater.rInflate(LayoutInflater.java:759)?
        at android.view.LayoutInflater.inflate(LayoutInflater.java:492)?
        at android.view.LayoutInflater.inflate(LayoutInflater.java:397)?
        at android.view.LayoutInflater.inflate(LayoutInflater.java:353)?
        at android.support.v7.app.AppCompatDelegateImpl.setContentView(AppCompatDelegateImpl.java:469)?
        at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:140)?
        at *****.*******.*********.MainActivity.onCreate(MainActivity.java:96)?
        at android.app.Activity.performCreate(Activity.java:5231)?
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)?
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2159)?
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245)?
        at android.app.ActivityThread.access$800(ActivityThread.java:135)?
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)?
        at android.os.Handler.dispatchMessage(Handler.java:102)?
        at android.os.Looper.loop(Looper.java:136)?
        at android.app.ActivityThread.main(ActivityThread.java:5017)?
        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:779)?
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)?
        at dalvik.system.NativeStart.main(Native Method)?
05-14 05:45:55.398 4488-4488/? I/Process: Sending signal. PID: 4488 SIG: 9

 

 

↓最も近そうな事例stackoverflow.com

 

github.com

h.s64.jp

 

 

関係あるかもな事例

android.jlelse.eu

stackoverflow.com

 

 

 

解決編へ