Note that there are some explanatory texts on larger screens.

plurals
  1. POAndroid: NullPointerException happened in DrawableContainer$DrawableContainerState.addChild
    primarykey
    data
    text
    <p>First, this crash happened only few times, randomly. And from the crash log, it should not a OOM problem for i cannot see any clue about "OutOfMemoryError". Neither it is resource not found because it should throw Resources$NotFoundException. The crashlog is as below (the root exception)</p> <pre><code>java.lang.NullPointerException at android.graphics.drawable.DrawableContainer$DrawableContainerState.addChild(DrawableContainer.java:349) at android.graphics.drawable.StateListDrawable$StateListState.addStateSet(StateListDrawable.java:265) at android.graphics.drawable.StateListDrawable.inflate(StateListDrawable.java:173) at android.graphics.drawable.Drawable.createFromXmlInner(Drawable.java:796) at android.graphics.drawable.Drawable.createFromXml(Drawable.java:737) at android.content.res.Resources.loadDrawable(Resources.java:1722) at android.content.res.TypedArray.getDrawable(TypedArray.java:601) at android.view.View.&lt;init&gt;(View.java:1885) at android.view.View.&lt;init&gt;(View.java:1834) at java.lang.reflect.Constructor.constructNative(Native Method) at java.lang.reflect.Constructor.newInstance(Constructor.java:446) at android.view.LayoutInflater.createView(LayoutInflater.java:500) at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56) at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:563) at android.view.LayoutInflater.rInflate(LayoutInflater.java:618) at android.view.LayoutInflater.rInflate(LayoutInflater.java:621) at android.view.LayoutInflater.parseInclude(LayoutInflater.java:702) at android.view.LayoutInflater.rInflate(LayoutInflater.java:614) at android.view.LayoutInflater.rInflate(LayoutInflater.java:621) at android.view.LayoutInflater.rInflate(LayoutInflater.java:621) at android.view.LayoutInflater.inflate(LayoutInflater.java:407) at android.view.LayoutInflater.inflate(LayoutInflater.java:320) at android.view.LayoutInflater.inflate(LayoutInflater.java:276) at bes.a(VideoDetailFragement.java:332) at android.support.v4.app.Fragment.b(Fragment.java:1460) at u.a(FragmentManager.java:911) at u.a(FragmentManager.java:1088) at h.run(BackStackRecord.java:682) at u.e(FragmentManager.java:1444) at n.onStart(FragmentActivity.java:551) at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1129) at android.app.Activity.performStart(Activity.java:3800) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2710) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2753) at android.app.ActivityThread.access$2500(ActivityThread.java:129) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2107) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:143) at android.app.ActivityThread.main(ActivityThread.java:4701) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:521) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618) at dalvik.system.NativeStart.main(Native Method) </code></pre> <p>I checked the layout file, and I'm sure the drawables are right there, while only in xhdpi folder. From the following link <a href="https://stackoverflow.com/questions/15394499/resouce-not-found-but-its-in-its-place">resouce not found but it's in its place</a></p> <p>It gives the resolution that </p> <blockquote> <p>In my application I solved my problem by making the copies of the drawables in all the folders of the drawables i.e. drawable-ldpi, drawable-mdpi, drawable-hdpi, drawable-xhdpi</p> </blockquote> <p>I didn't try, but, if so, then why? From the <a href="https://developer.android.com/guide/topics/resources/providing-resources.html" rel="nofollow noreferrer">Android doc</a>, it says</p> <blockquote> <p>Screen pixel density is the one qualifier that is not eliminated due to a contradiction. Even though the screen density of the device is hdpi, drawable-port-ldpi/ is not eliminated because every screen density is considered to be a match at this point</p> </blockquote> <p>So in my opinion, in a low dpi device, it should find a drawable from the xhdpi one and scale it down to a appropriate size. So i dont know why it sometimes throws such exception.</p> <p>-------------------------------------UPDATE--------------------------</p> <p>As request, i post the another layout file and the crash log, which also the same problem.. XML file:</p> <pre><code>&lt;?xml version="1.0" encoding="utf-8"?&gt; &lt;RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/advert_view" android:layout_width="fill_parent" android:layout_height="fill_parent" android:gravity="center_horizontal" &gt; &lt;ImageView android:id="@+id/advert_img" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:layout_gravity="center_horizontal" android:scaleType="fitXY" /&gt; &lt;RelativeLayout android:id="@+id/advert_close" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignRight="@id/advert_img" android:layout_alignTop="@id/advert_img" android:paddingBottom="9dp" android:paddingLeft="9dp" android:paddingRight="9dp" android:paddingTop="9dp" android:visibility="gone" &gt; &lt;ImageView android:id="@+id/advert_close_img" android:layout_width="24dp" android:layout_height="24dp" android:src="@drawable/advert_close" /&gt; &lt;/RelativeLayout&gt; &lt;RelativeLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignBottom="@id/advert_img" android:layout_alignLeft="@id/advert_img" android:paddingBottom="38dp" android:paddingLeft="53dp" &gt; &lt;ImageView android:id="@+id/advert_goto" android:layout_width="75dp" android:layout_height="26dp" android:background="@drawable/advert_goto_bt_selector" android:visibility="gone" /&gt; &lt;/RelativeLayout&gt; &lt;/RelativeLayout&gt; </code></pre> <p>the drawable advert_goto_bt_selector is</p> <pre><code>&lt;?xml version="1.0" encoding="utf-8"?&gt; &lt;selector xmlns:android="http://schemas.android.com/apk/res/android"&gt; &lt;item android:state_pressed="true" android:drawable="@drawable/advert_goto_btn_press" /&gt; &lt;item android:drawable="@drawable/advert_goto_btn" /&gt; &lt;/selector&gt; </code></pre> <p>I am quite sure the advert_goto_btn_press.png and advert_goto_btn.png, advert_close exist in the xhdpi in the apk file</p> <p>Crash log</p> <pre><code>java.lang.NullPointerException at android.graphics.drawable.DrawableContainer$DrawableContainerState.addChild(DrawableContainer.java:349) at android.graphics.drawable.StateListDrawable$StateListState.addStateSet(StateListDrawable.java:265) at android.graphics.drawable.StateListDrawable.inflate(StateListDrawable.java:173) at android.graphics.drawable.Drawable.createFromXmlInner(Drawable.java:796) at android.graphics.drawable.Drawable.createFromXml(Drawable.java:737) at android.content.res.Resources.loadDrawable(Resources.java:1722) at android.content.res.TypedArray.getDrawable(TypedArray.java:601) at android.view.View.&lt;init&gt;(View.java:1885) at android.widget.ImageView.&lt;init&gt;(ImageView.java:176) at android.widget.ImageView.&lt;init&gt;(ImageView.java:172) at java.lang.reflect.Constructor.constructNative(Native Method) at java.lang.reflect.Constructor.newInstance(Constructor.java:446) at android.view.LayoutInflater.createView(LayoutInflater.java:500) at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56) at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:563) at android.view.LayoutInflater.rInflate(LayoutInflater.java:618) at android.view.LayoutInflater.rInflate(LayoutInflater.java:621) at android.view.LayoutInflater.inflate(LayoutInflater.java:407) at android.view.LayoutInflater.inflate(LayoutInflater.java:320) at com.xxxx.video.ui.widget.AdvertView.a(AdvertView.java:111) at com.xxxx.video.ui.widget.AdvertView.&lt;init&gt;(AdvertView.java:89) at java.lang.reflect.Constructor.constructNative(Native Method) at java.lang.reflect.Constructor.newInstance(Constructor.java:446) at android.view.LayoutInflater.createView(LayoutInflater.java:500) at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:565) at android.view.LayoutInflater.rInflate(LayoutInflater.java:618) at android.view.LayoutInflater.inflate(LayoutInflater.java:407) at android.view.LayoutInflater.inflate(LayoutInflater.java:320) at android.view.LayoutInflater.inflate(LayoutInflater.java:276) at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:203) at android.app.Activity.setContentView(Activity.java:1666) at com.xxxx.video.player.PlayerActivity.onCreate(PlayerActivity.java:236) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2701) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2753) at android.app.ActivityThread.access$2500(ActivityThread.java:129) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2107) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:143) at android.app.ActivityThread.main(ActivityThread.java:4701) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:521) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618) at dalvik.system.NativeStart.main(Native Method) </code></pre> <p>the Java code is quite simple, it is inflating the layout file.</p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload