InflateException: Binary XML file line #8: Error inflating class ImageView

天涯浪子 提交于 2019-11-26 11:25:14

问题


I know there are other questions on SO asking the same thing. I have already looked at most of them.

Most answers call about memory errors. I can\'t see how an ImageView which loads just a small icon (24x24 pixels) can make something like this.

But I\'d like to post the stacktrace here maybe someone else can identify something I can\'t and help me.

06-03 22:14:17.367 28590-28590/css.mvp.example.debug W/dalvikvm: threadid=1: thread exiting with uncaught exception (group=0x41e4ad40)
06-03 22:14:17.409 28590-28590/css.mvp.example.debug E/AndroidRuntime: FATAL EXCEPTION: main
Process: css.mvp.example.debug, PID: 28590  android.view.InflateException: Binary XML file line #8: Error inflating class ImageView
    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:713)
    at android.view.LayoutInflater.rInflate(LayoutInflater.java:755)
    at android.view.LayoutInflater.inflate(LayoutInflater.java:492)
    at android.view.LayoutInflater.inflate(LayoutInflater.java:397)
    at css.mvp.example.main.projects.fragments.adapters.PollAnswersAdapter.getView(PollAnswersAdapter.java:38)
    at android.widget.AbsListView.obtainView(AbsListView.java:2255)
    at android.widget.ListView.measureHeightOfChildren(ListView.java:1263)
    at android.widget.ListView.onMeasure(ListView.java:1175)
    at android.view.View.measure(View.java:16540)
    at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5137)
    at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1404)
    at android.widget.LinearLayout.measureVertical(LinearLayout.java:695)
    at android.widget.LinearLayout.onMeasure(LinearLayout.java:588)
    at android.view.View.measure(View.java:16540)
    at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5137)
    at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
    at android.view.View.measure(View.java:16540)
    at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5137)
    at android.support.design.widget.CoordinatorLayout.onMeasureChild(CoordinatorLayout.java:668)
    at android.support.design.widget.CoordinatorLayout.onMeasure(CoordinatorLayout.java:735)
    at android.view.View.measure(View.java:16540)
    at android.support.v4.widget.DrawerLayout.onMeasure(DrawerLayout.java:1075)
    at android.view.View.measure(View.java:16540)
    at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5137)
    at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
    at android.view.View.measure(View.java:16540)
    at android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:719)
    at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:455)
    at android.view.View.measure(View.java:16540)
    at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5137)
    at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
    at android.view.View.measure(View.java:16540)
    at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5137)
    at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
    at android.support.v7.widget.ContentFrameLayout.onMeasure(ContentFrameLayout.java:135)
    at android.view.View.measure(View.java:16540)
    at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5137)
    at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1404)
    at android.widget.LinearLayout.measureVertical(LinearLayout.java:695)
    at android.widget.LinearLayout.onMeasure(LinearLayout.java:588)
    at android.view.View.measure(View.java:16540)
    at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5137)
    at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
    at android.view.View.measure(View.java:16540)
    at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5137)
    at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1404)
    at android.widget.LinearLayout.measureVertical(LinearLayout.java:695)
    at android.widget.LinearLayout.onMeasure(LinearLayout.java:588)
    at android.view.View.measure(View.java:16540)
    at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5137)
    at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
    at com.android.internal.policy.impl.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2291)
    at android.view.View.measure(View.java:16540)
    at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:1942)
    at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1132)
    at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1321)
    at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1019)
    at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5725)

Layout file

<?xml version=\"1.0\" encoding=\"utf-8\"?>
<LinearLayout   xmlns:android=\"http://schemas.android.com/apk/res/android\" android:orientation=\"horizontal\"
android:weightSum=\"11\"
android:paddingTop=\"16dp\" android:paddingBottom=\"16dp\"
android:gravity=\"center_horizontal\"
android:layout_width=\"match_parent\" android:layout_height=\"wrap_content\">

<ImageView
    android:id=\"@+id/iv_answer_circle\"
    android:src=\"@drawable/ic_dot\"
    android:layout_gravity=\"center\" android:layout_weight=\"2\"
    android:layout_marginLeft=\"16dp\" android:layout_marginRight=\"16dp\"
    android:layout_width=\"0dp\" android:layout_height=\"wrap_content\" />

<TextView android:id=\"@+id/tv_poll_answer\"
    android:layout_weight=\"6\"
    android:layout_width=\"0dp\" android:layout_height=\"wrap_content\" />

<TextView android:id=\"@+id/tv_poll_answer_num\"
    android:layout_weight=\"1\"
    android:layout_marginLeft=\"16dp\" android:layout_marginRight=\"8dp\"
    android:layout_width=\"0dp\" android:layout_height=\"wrap_content\" />

<TextView android:id=\"@+id/tv_poll_answer_percent\"
    android:layout_weight=\"2\"
    android:layout_marginRight=\"16dp\"
    android:layout_width=\"0dp\" android:layout_height=\"wrap_content\" />

</LinearLayout>

EDIT 2 : the code of my Adapter class.

public class PollAnswersAdapter extends ArrayAdapter<PollAnswerItem> {

    private Context context;
    private ArrayList<PollAnswerItem> data;


    public PollAnswersAdapter(Context context, ArrayList<PollAnswerItem> data) {
        super(context, -1, data);
        this.context = context;
        this.data = data;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

        View rowView = inflater.inflate(R.layout.row_answer, parent, false);

        ImageView ivCircle = (ImageView) rowView.findViewById(R.id.iv_answer_circle);
        TextView tvAnswer = (TextView) rowView.findViewById(R.id.tv_poll_answer);
        TextView tvNums = (TextView) rowView.findViewById(R.id.tv_poll_answer_num);
        TextView tvPercent = (TextView) rowView.findViewById(R.id.tv_poll_answer_percent);

        tvAnswer.setText(data.get(position).getAnswer());
        tvNums.setText(data.get(position).getNum());
        tvPercent.setText(data.get(position).getPercent() + \"%\");
        tvPercent.setTextColor(ColorTemplate.PREDEFINED_COLORS[position]);

        return rowView;
    }

}

回答1:


The stack trace doesn't show it, but the error during inflation might come from drawable used in the ImageView, in this case:

android:src="@drawable/ic_dot"

OP tested this hunch, by trying a different drawable which "seems ok right now...".




回答2:


binary xml file line #0: error inflating class imageview

you have to see if your image has become drawable-v23 or v24 which might be higher than your mobile os level, Make sure to avoid creating drawable version image in project

example In drawable folder ~> "ic_contact(v24)"




回答3:


If you are using vector drawables, use

app:srcCompat="@drawable/ic_dot"

instead of

android:src="@drawable/ic_dot"



回答4:


I had the same problem. The png image for my imageView was causing a class inflateException. This was only happening with my phone running android 6.0.1, but not in my phone running android 7.0. To solve this:

---In Android Studio---

  • Deleted the png image from the drawable folder (I only have the drawable folder visible, not the drawable-v24).
  • Copy the png back to the drawable folder. When doing this, you'll be able to pick to copy it to either the drawable or drawable-v24 folder. Copy the png to both folders
  • Copy the png to both folders (png's must have same name).
  • Once you copy the png to both folders, a new folder with the png's name will show up. Inside it you will see the 2 png's. One with "(v24)" next to it. New folder with name of png's will appear, containing png's



回答5:


I also face this kind of problem . the simplest way to solve

Just Put your drawable files in drawable directory, not drawable 24.




回答6:


In my case I had app:srcCompat="@drawable/ic_svg_image" inside ImageView, but it was very complex SVG. Though it showed in Design tab, an application crashed.

I changed it to PNG.




回答7:


Don't paste your image into drawable in Android studio, paste it into the drawable folder and clean the project and then run it will work.




回答8:


The following code might be added in Android Manifests-Activity

<activity
android:name=""
--------------
android:theme="@android:style/Theme.Black.NoTitleBar">
</activity>

please remove this theme if you have added.

My problem has been solved after removing this theme. I got these solution after long time.




回答9:


using android.support.v7.widget.AppCompatImageView without android:background solved the problem for me.




回答10:


android:src="@raw/ic_image"

I added the image file to new directory called raw and it solved my problem.




回答11:


What helped me is just copying the image file (.png in my case)

  • from res\drawable-v24

  • to \res\drawable directory.

Will happy if this post will save time to somebody else.



来源:https://stackoverflow.com/questions/37621934/inflateexception-binary-xml-file-line-8-error-inflating-class-imageview

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!