error inflating ConstraintLayout in android studio

2020-02-06 05:06发布

I'm having problems with Android Studio. I recently upgraded my SDK Manager to include;

compile 'com.android.support.constraint:constraint-layout:1.0.0-beta5'

classpath is

 classpath 'com.android.tools.build:gradle:2.2.3'

Project builds fine. Intellisense and documentation works fine. But when I try to run (in debug) the app on my phone I get this error;

 Caused by: android.view.InflateException: Binary XML file line #2:
 Binary XML file line #2: Error inflating class ConstraintLayout
                   at android.view.LayoutInflater.inflate(LayoutInflater.java:539)
                   at android.view.LayoutInflater.inflate(LayoutInflater.java:423)
                   at android.view.LayoutInflater.inflate(LayoutInflater.java:374)
                   at com.android.internal.policy.PhoneWindow.setContentView(PhoneWindow.java:443)
                   at android.app.Activity.setContentView(Activity.java:2172)

I've synced gradle. I've restarted Android Studio. I've cleaned and rebuilt the project.

Any ideas on how to fix this? thanks!

-edit- XML looks like this;

<ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/PLAY_PARENT"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/greenfelt2"
android:padding="0dp">

6条回答
家丑人穷心不美
2楼-- · 2020-02-06 05:31

I had the same issue, the app run correctly in other phones but got this exception with a ZTE device. I fixed it by disabling Instant Run in Android Studio.

查看更多
对你真心纯属浪费
3楼-- · 2020-02-06 05:38

If You using androidx, you must use

androidx.constraintlayout.widget.ConstraintLayout
查看更多
smile是对你的礼貌
4楼-- · 2020-02-06 05:43

I had the same issues. For me, the reason is my project "Automatically convert third-party libraries to use AndroidXhas". What to do? simply following two steps:

1st step: Please check your gradle.properties, if you see the following lines, you might have the exact same issues as mine. You can firstly delete them.

android.useAndroidX=true
android.enableJetifier=true

2nd step: in main activity, I changed

import androidx.core.app.ActivityCompat;
import androidx.core.content.ContextCompat;

into

import android.support.v4.app.ActivityCompat;
import android.support.v4.content.ContextCompat;

Everything works all of sudden!

查看更多
三岁会撩人
5楼-- · 2020-02-06 05:46

You should add as below

<android.support.constraint.ConstraintLayout
 xmlns:android="http://schemas.android.com/apk/res/android"
 xmlns:app="http://schemas.android.com/apk/res-auto"
 xmlns:tools="http://schemas.android.com/tools"
 android:id="@+id/PLAY_PARENT"
 android:layout_width="match_parent"
 android:layout_height="match_parent"
 android:background="@drawable/greenfelt2"
 android:padding="0dp">

compile 'com.android.support.constraint:constraint-layout:1.0.2'

For the latest release check here

check out this project for more on ConstraintLayout Usage

Update

For those who are switching from android support to androidx, remember to change android.support.constraint.ConstraintLayout to androidx.constraintlayout.widget.ConstraintLayout

查看更多
beautiful°
6楼-- · 2020-02-06 05:50

I don't know if this was solution 2 and half years ago, but today i had similar error. Found the answer right here: Error inflating class androidx.constraintlayout.ConstraintLayout after migration to androidx

Basically only xml tags of constraint layout should be renamed to these ->

androidx.constraintlayout.widget.ConstraintLayout

查看更多
狗以群分
7楼-- · 2020-02-06 05:53

It may be number of reasons

  1. dependency version issue (same like above)

  2. out-of-memory issue : In my case I was added the high resolution image for background of the constraint-layout or in the same page(.xml file) we used the high resolution image for any imageview source.

查看更多
登录 后发表回答