Error inflating class de.hdodenhof.circleimageview.CircleImageView in Android version 6 marshmallow

10,388

Solution 1

CHange this:

<de.hdodenhof.circleimageview.CircleImageView
        android:id="@+id/civ_requests"
        android:layout_width="80sp"
        android:layout_height="80sp"
        android:layout_margin="10sp"
        android:src="@drawable/profilesvg" />

to this:

<de.hdodenhof.circleimageview.CircleImageView
        android:id="@+id/civ_requests"
        android:layout_width="80dp"
        android:layout_height="80dp"
        android:layout_margin="10dp"
        android:src="@drawable/profilesvg" />

You're suppose to use SP only in fontSize. For layout height and width as well as margins the unit should be DP.

And with this make sure your source image is in drawable and not in drawablev24.

Solution 2

I also faced the same issue having width and height is "dp". But, on my side it resolves by replacing scaleType from fitcenter to centerCrop.

Solution 3

In my case I had this error, because I had adjustViewBounds="true" in my layout. Removing it fixed the problem.

Solution 4

Okay, on checking the source code and implementation, it seems the developer had intentionally, coded them as I see those might not be supported as of the day this answer was posted here.

    @Override
    public void setScaleType(ScaleType scaleType) {
        if (scaleType != SCALE_TYPE) {
            throw new IllegalArgumentException(String.format("ScaleType %s not supported.", scaleType));
        }
    }

    @Override
    public void setAdjustViewBounds(boolean adjustViewBounds) {
        if (adjustViewBounds) {
            throw new IllegalArgumentException("adjustViewBounds not supported.");
        }
    }

and the only supported ScaleType is

private static final ScaleType SCALE_TYPE = ScaleType.CENTER_CROP;

So removing those from the CircularImageView attributes in XML should be a workaround until a fix is implemented.

There is an alternative CircularImageView library by Lopez Mikhael at https://github.com/lopspower/CircularImageView

This library also has some limitation: (at least adjustViewBounds isn't supported yet)

LIMITATIONS

  • By default the ScaleType is FIT_CENTER. You can also use CENTER_INSIDE and CENTER_CROP.

  • Enabling adjustViewBounds is not supported as this requires an unsupported ScaleType.

Share:
10,388
Maximus
Author by

Maximus

Updated on July 16, 2022

Comments

  • Maximus
    Maximus almost 2 years

    I created an app which uses this hdodenhof CircleImageview library. My app works fine on Android 7 and 7.1 but it is crashing in lower versions such as marshmallow/Android 6. How can I solve this problem? I have read his GitHub posts but it did not solve my problem as people has asked to remove attributes from the .xml, but I didn't use these attributes.

    Here's my simple implementation of the CircleImageView:

    <de.hdodenhof.circleimageview.CircleImageView
            android:id="@+id/civ_requests"
            android:layout_width="80sp"
            android:layout_height="80sp"
            android:layout_margin="10sp"
            android:src="@drawable/profilesvg" />
    

    And heres the error:

    FATAL EXCEPTION: main
    Process: com.milind.locatemymate, PID: 4288
    android.view.InflateException: Binary XML file line #0: Binary XML file line #0: Error inflating class de.hdodenhof.circleimageview.CircleImageView
    at android.view.LayoutInflater.inflate(LayoutInflater.java:539)
    at android.view.LayoutInflater.inflate(LayoutInflater.java:423)
    at com.milind.locatemymate.Fragment.Requests$1.onCreateViewHolder(Requests.java:152)
    at com.milind.locatemymate.Fragment.Requests$1.onCreateViewHolder(Requests.java:103)
    at android.support.v7.widget.RecyclerView$Adapter.createViewHolder(RecyclerView.java:6685)
    at android.support.v7.widget.RecyclerView$Recycler.tryGetViewHolderForPositionByDeadline(RecyclerView.java:5869)
    at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:5752)
    at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:5748)
    at android.support.v7.widget.LinearLayoutManager$LayoutState.next(LinearLayoutManager.java:2232)
    at android.support.v7.widget.LinearLayoutManager.layoutChunk(LinearLayoutManager.java:1559)
    at android.support.v7.widget.LinearLayoutManager.fill(LinearLayoutManager.java:1519)
    at android.support.v7.widget.LinearLayoutManager.onLayoutChildren(LinearLayoutManager.java:614)
    at android.support.v7.widget.RecyclerView.dispatchLayoutStep2(RecyclerView.java:3812)
    at android.support.v7.widget.RecyclerView.onMeasure(RecyclerView.java:3225)
    at android.view.View.measure(View.java:18788)
    at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5951)
    at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1465)
    at android.widget.LinearLayout.measureVertical(LinearLayout.java:748)
    at android.widget.LinearLayout.onMeasure(LinearLayout.java:630)
    at android.view.View.measure(View.java:18788)
    at android.support.v4.view.ViewPager.onMeasure(ViewPager.java:1632)
    at android.view.View.measure(View.java:18788)
    at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5951)
    at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1465)
    at android.widget.LinearLayout.measureVertical(LinearLayout.java:748)
    at android.widget.LinearLayout.onMeasure(LinearLayout.java:630)
    at android.view.View.measure(View.java:18788)
    at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5951)
    at android.widget.FrameLayout.onMeasure(FrameLayout.java:194)
    at android.support.v7.widget.ContentFrameLayout.onMeasure(ContentFrameLayout.java:141)
    at android.view.View.measure(View.java:18788)
    at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5951)
    at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1465)
    at android.widget.LinearLayout.measureVertical(LinearLayout.java:748)
    at android.widget.LinearLayout.onMeasure(LinearLayout.java:630)
    at android.view.View.measure(View.java:18788)
    at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5951)
    at android.widget.FrameLayout.onMeasure(FrameLayout.java:194)
    at android.view.View.measure(View.java:18788)
    at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5951)
    

    Same error in friends fragment, heres its updated xml layout:

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:padding="5dp">
    
        <LinearLayout
            android:orientation="horizontal"
            android:layout_width="match_parent"
            android:layout_height="wrap_content">
        <de.hdodenhof.circleimageview.CircleImageView
            android:src="@drawable/profilesvg"
            android:id="@+id/civ_friend"
            android:layout_width="80dp"
            android:layout_height="80dp" />
    
        <LinearLayout
            android:layout_marginLeft="10dp"
            android:layout_marginStart="10dp"
            android:padding="5dp"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical">
    
            <TextView
                android:textStyle="bold"
                android:textColor="@color/LightBlack"
                android:id="@+id/tv_friendName"
                android:layout_width="match_parent"
                android:layout_height="wrap_content" />
    
            <TextView
                android:textColor="@color/LightBlack"
                android:layout_marginTop="5dp"
                android:id="@+id/tv_friendStatus"
                android:layout_width="match_parent"
                android:layout_height="wrap_content" />
        </LinearLayout>
        </LinearLayout>
        <View
            android:layout_marginTop="5dp"
            android:background="@color/LightGrey"
            android:layout_width="match_parent"
            android:layout_height="0.5dp" />
    </LinearLayout>
    
  • Maximus
    Maximus about 6 years
    the error from that requests fragment has gone i suppose, but it shows error in my one more fragment called friends , i just replaced the sp there by dp in cricleimagview but still its showing inflation error over there. How can i show you its xml layout now?
  • Levi Moreira
    Levi Moreira about 6 years
    you can edit your question and add your xml layout there
  • Maximus
    Maximus about 6 years
    ok sure , just before proceeding i want to tell you that i have sp for all of my views. I think i had misunderstanding with sp and dp. Should i change sp by dp in all of my views and then try it, apart from textsize in my texviews?
  • Levi Moreira
    Levi Moreira about 6 years
    yep, you should. Remember to only use sp when setting textSize in Views. For all other measures you should use DP :)
  • Maximus
    Maximus about 6 years
    yes thanks again, let me change sp by dp in all of my activites and fragments layouts, Then i try to execute again. Then if it doesnt crash ( i hope it wont) , i will accept ur answer mate :)
  • Maximus
    Maximus about 6 years
    hey mate i have changed all views height,width and margins by dp. But still it shows Error inflating class de.hdodenhof.circleimageview.CircleImageView in my friends fragment. i have attached the friends layout in above question. Please have a look at it
  • Levi Moreira
    Levi Moreira about 6 years
    Could you post your complete stack trace?
  • Maximus
    Maximus about 6 years
    Hi mate i have solved my problem, it read few couple of stack questions and my issue was i guess putting my image in drawable v24 , then i deleted it and re inserted it this time in drawable rather than drawable v24. But i will still accept your answer , you have tried to solve my problem , and were still doing it , thanks alot :) i wil just add one more line to ur answer :)
  • Levi Moreira
    Levi Moreira about 6 years
    Aw thanks :) I thought the problem might be with multidex, but I saw someone having problems with the drawable 24 folder. Glad you fixed the problem :)
  • Maximus
    Maximus about 6 years
    is there anyway i can be in contact with you ?
  • Sandeep Dhami
    Sandeep Dhami over 5 years
    i am still running into problems by using dp
  • Ramesh Bhati
    Ramesh Bhati about 5 years
    <de.hdodenhof.circleimageview.CircleImageView android:id="@+id/imgVoice" android:layout_width="22dp" android:layout_height="22dp" android:layout_gravity="center" android:src="@drawable/mic_svg" /> me to same problem:
  • Hamza AVvan
    Hamza AVvan over 3 years
    The last paragraph eventually saved me @LeviMoreira