android studio 中的 ConstraintLayout 膨胀错误
error inflating ConstraintLayout in android studio
我在使用 Android Studio 时遇到问题。我最近升级了我的 SDK 管理器以包含;
compile 'com.android.support.constraint:constraint-layout:1.0.0-beta5'
类路径是
classpath 'com.android.tools.build:gradle:2.2.3'
项目构建良好。智能感知和文档工作正常。但是当我尝试 运行(在调试中)我的 phone 上的应用程序时,我收到此错误;
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)
我已同步 gradle。我已经重新启动 Android Studio。我已经清理并重建了项目。
关于如何解决这个问题有什么想法吗?
谢谢!
-编辑-
XML 看起来像这样;
<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">
你应该添加如下
<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'
查看最新版本here
查看此项目以了解有关 ConstraintLayout Usage
的更多信息
更新
对于那些从 android 支持切换到 androidx
的人,记得将 android.support.constraint.ConstraintLayout
更改为 androidx.constraintlayout.widget.ConstraintLayout
我遇到了同样的问题,应用程序 运行 在其他手机上正确,但在 ZTE 设备上出现此异常。我通过在 Android Studio 中禁用 Instant 运行 来修复它。
可能有很多原因
依赖版本问题(同上)
内存不足问题:在我的例子中,我添加了高分辨率图像作为约束布局的背景或在我们使用的同一页面(.xml 文件)中任何图像视图源的高分辨率图像。
我遇到了同样的问题。对我来说,原因是我的项目“Automatically convert third-party libraries to use AndroidXhas”。该怎么办?只需执行以下两个步骤:
第一步:
请检查您的 gradle.properties,如果您看到以下几行,您可能遇到与我完全相同的问题。您可以先删除它们。
android.useAndroidX=true
android.enableJetifier=true
第 2 步:在主要 activity 中,我更改了
import androidx.core.app.ActivityCompat;
import androidx.core.content.ContextCompat;
进入
import android.support.v4.app.ActivityCompat;
import android.support.v4.content.ContextCompat;
突然之间一切正常!
我不知道这是否是两年半前的解决方案,但今天我遇到了类似的错误。在这里找到答案:
基本上只有 xml 个约束布局标签应该重命名为这些 ->
androidx.constraintlayout.widget.ConstraintLayout
如果你使用androidx,你必须使用
androidx.constraintlayout.widget.ConstraintLayout
请使用 ConstraintLayout 依赖版本'2.0.0-beta5',它已经解决了我的问题。
添加到您的 app/build.gradle
dependencies {
...
implementation 'com.android.support.constraint:constraint-layout:1.0.2'
...
}
我在使用 Android Studio 时遇到问题。我最近升级了我的 SDK 管理器以包含;
compile 'com.android.support.constraint:constraint-layout:1.0.0-beta5'
类路径是
classpath 'com.android.tools.build:gradle:2.2.3'
项目构建良好。智能感知和文档工作正常。但是当我尝试 运行(在调试中)我的 phone 上的应用程序时,我收到此错误;
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)
我已同步 gradle。我已经重新启动 Android Studio。我已经清理并重建了项目。
关于如何解决这个问题有什么想法吗? 谢谢!
-编辑- XML 看起来像这样;
<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">
你应该添加如下
<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'
查看最新版本here
查看此项目以了解有关 ConstraintLayout Usage
的更多信息更新
对于那些从 android 支持切换到 androidx
的人,记得将 android.support.constraint.ConstraintLayout
更改为 androidx.constraintlayout.widget.ConstraintLayout
我遇到了同样的问题,应用程序 运行 在其他手机上正确,但在 ZTE 设备上出现此异常。我通过在 Android Studio 中禁用 Instant 运行 来修复它。
可能有很多原因
依赖版本问题(同上)
内存不足问题:在我的例子中,我添加了高分辨率图像作为约束布局的背景或在我们使用的同一页面(.xml 文件)中任何图像视图源的高分辨率图像。
我遇到了同样的问题。对我来说,原因是我的项目“Automatically convert third-party libraries to use AndroidXhas”。该怎么办?只需执行以下两个步骤:
第一步: 请检查您的 gradle.properties,如果您看到以下几行,您可能遇到与我完全相同的问题。您可以先删除它们。
android.useAndroidX=true
android.enableJetifier=true
第 2 步:在主要 activity 中,我更改了
import androidx.core.app.ActivityCompat;
import androidx.core.content.ContextCompat;
进入
import android.support.v4.app.ActivityCompat;
import android.support.v4.content.ContextCompat;
突然之间一切正常!
我不知道这是否是两年半前的解决方案,但今天我遇到了类似的错误。在这里找到答案:
基本上只有 xml 个约束布局标签应该重命名为这些 ->
androidx.constraintlayout.widget.ConstraintLayout
如果你使用androidx,你必须使用
androidx.constraintlayout.widget.ConstraintLayout
请使用 ConstraintLayout 依赖版本'2.0.0-beta5',它已经解决了我的问题。
添加到您的 app/build.gradle
dependencies {
...
implementation 'com.android.support.constraint:constraint-layout:1.0.2'
...
}