迁移到androidx后错误膨胀类androidx.constraintlayout.ConstraintLayout

Kev*_*nMo 70 android androidx

我刚刚通过Android Studio菜单选项迁移到androidx __CODE__

我收到以下错误:

android.view.InflateException:二进制XML文件行#2:二进制XML文件行#2:错误膨胀类androidx.constraintlayout.ConstraintLayout

任何的想法?

堆栈跟踪:

2018-10-19 00:25:58.128 28131-28131/com.midounoo.midounoo E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.midounoo.midounoo, PID: 28131
    java.lang.RuntimeException: Unable to start activity ComponentInfo{com.midounoo.midounoo/com.midounoo.midounoo.Base.MainActivity}: android.view.InflateException: Binary XML file line #2: Binary XML file line #2: Error inflating class androidx.constraintlayout.ConstraintLayout
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2724)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2789)
        at android.app.ActivityThread.-wrap12(ActivityThread.java)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1527)
        at android.os.Handler.dispatchMessage(Handler.java:110)
        at android.os.Looper.loop(Looper.java:203)
        at android.app.ActivityThread.main(ActivityThread.java:6255)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1063)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:924)
     Caused by: android.view.InflateException: Binary XML file line #2: Binary XML file line #2: Error inflating class androidx.constraintlayout.ConstraintLayout
     Caused by: android.view.InflateException: Binary XML file line #2: Error inflating class androidx.constraintlayout.ConstraintLayout
     Caused by: java.lang.ClassNotFoundException: Didn't find class "androidx.constraintlayout.ConstraintLayout" on path: DexPathList[[zip file "/data/app/com.midounoo.midounoo-2/base.apk", zip file "/data/app/com.midounoo.midounoo-2/split_lib_dependencies_apk.apk", zip file "/data/app/com.midounoo.midounoo-2/split_lib_slice_0_apk.apk", zip file "/data/app/com.midounoo.midounoo-2/split_lib_slice_1_apk.apk", zip file "/data/app/com.midounoo.midounoo-2/split_lib_slice_2_apk.apk", zip file "/data/app/com.midounoo.midounoo-2/split_lib_slice_3_apk.apk", zip file "/data/app/com.midounoo.midounoo-2/split_lib_slice_4_apk.apk", zip file "/data/app/com.midounoo.midounoo-2/split_lib_slice_5_apk.apk", zip file "/data/app/com.midounoo.midounoo-2/split_lib_slice_6_apk.apk", zip file "/data/app/com.midounoo.midounoo-2/split_lib_slice_7_apk.apk", zip file "/data/app/com.midounoo.midounoo-2/split_lib_slice_8_apk.apk", zip file "/data/app/com.midounoo.midounoo-2/split_lib_slice_9_apk.apk"],nativeLibraryDirectories=[/data/app/com.midounoo.midounoo-2/lib/arm64, /system/lib64, /vendor/lib64, /system/vendor/lib64]]
        at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:380)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
        at android.view.LayoutInflater.createView(LayoutInflater.java:609)
        at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:787)
        at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:727)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:495)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:426)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:377)
        at androidx.appcompat.app.AppCompatDelegateImpl.setContentView(AppCompatDelegateImpl.java:469)
        at androidx.appcompat.app.AppCompatActivity.setContentView(AppCompatActivity.java:140)
        at com.midounoo.midounoo.Base.MainActivity.onCreate(MainActivity.java:43)
        at android.app.Activity.performCreate(Activity.java:6666)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1118)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2677)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2789)
        at android.app.ActivityThread.-wrap12(ActivityThread.java)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1527)
        at android.os.Handler.dispatchMessage(Handler.java:110)
        at android.os.Looper.loop(Looper.java:203)
        at android.app.ActivityThread.main(ActivityThread.java:6255)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1063)
Run Code Online (Sandbox Code Playgroud)

Kev*_*nMo 141

我通过改变所有出现的问题来解决我的问题

androidx.constraintlayout.ConstraintLayout

androidx.constraintlayout.widget.ConstraintLayout

  • 是的,Android工作室转换中的错误,必须使用*androidx.constraintlayout.widget.ConstraintLayout*更改xml布局中的所有出现... ...谢谢 (11认同)
  • 我已经使用 androidx 支持库创建了一个新项目,并且我的主要活动中已经有 androidx.constraintlayout.widget.ConstraintLayout 但仍然遇到相同的错误。 (2认同)
  • @Kanchan如果您在多模块项目中工作,请检查是否需要更新任何内容中的ConstraintLayout路径。 (2认同)

Mar*_*ler 39

添加androidx.constraintlayout.ConstraintLayout到依赖项:

dependencies  {
    // https://mvnrepository.com/artifact/androidx.constraintlayout/constraintlayout
    implementation "androidx.constraintlayout:constraintlayout:1.1.3"
}
Run Code Online (Sandbox Code Playgroud)

存储库是mavenCentral().

  • 为什么在 Android Studio 上会发生这种情况?我把它从 1.1.2 改为 1.1.3。谢谢你。 (2认同)
  • 对我来说,这应该是唯一可接受的答案。有一个bug包含1.1.2,即1.1.3,可解决此问题。 (2认同)

Tap*_*ave 6

之后我有同样的问题:

  • 将支持库迁移到 androidx;
  • 将 targetSdkVersion 增加到 29;

我也用:

implementation "uk.co.chrisjenx:calligraphy:2.3.0"
Run Code Online (Sandbox Code Playgroud)

我尝试了这个问题的所有帖子,但没有成功。

我通过向.disableCustomViewInflation()Calligraphy init添加一个字符串来修复它:

@Override
public void onCreate() {

    super.onCreate();
    // ...
    CalligraphyConfig.initDefault(new CalligraphyConfig.Builder()
            .setDefaultFontPath("fonts/Sans-Regular.ttf")
            .setFontAttrId(R.attr.fontPath)
            .disableCustomViewInflation() // <----- this fix
            .build());
    // ...
}
Run Code Online (Sandbox Code Playgroud)

我希望书法的下一个版本(克里斯托弗·詹金斯感谢你的出色工作)也能在里面修复它。


Mir*_*han 6

我遇到了同样的问题,我如下解决了它:

在您的依赖中,如果您添加了

implementation 'androidx.constraintlayout:constraintlayout:1.x.x' 那是正确的

但是在xml布局文件中,您必须将小部件用作

androidx.constraintlayout.widget.ConstraintLayout


Nee*_*ani 5

如果将mavenCentral()作为Gradle文件中的存储库添加并更改androidx.constraintlayout.ConstraintLayoutandroidx.constraintlayout.widget.ConstraintLayout不能解决问题后,请尝试执行Invalidate cache并从文件菜单重新启动。它为我工作。


小智 5

build.gradle =>检查依赖版本

implementation 'androidx.constraintlayout:constraintlayout:1.1.1'
Run Code Online (Sandbox Code Playgroud)


改变

implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
Run Code Online (Sandbox Code Playgroud)

解决了问题

  • 尝试很好地格式化答案 (2认同)

san*_*adi 5

确保您的项目完全迁移到 androidx,就我而言,我发现:

<android.support.constraint.ConstraintLayout
Run Code Online (Sandbox Code Playgroud)

代替

  <androidx.constraintlayout.widget.ConstraintLayout
Run Code Online (Sandbox Code Playgroud)

所以改变它,我的问题就解决了!