简体   繁体   中英

Call to createView failed, how to fix preview of android screen in xml not showing properly in intellij

I am fairly new to android, as soon as I created a new Android project and updated all dependencies, I started facing issue that in design tab of xml preview is not rendered properly. With an error saying Call to createView failed . I have attached a snapshot below.

快照智能理念

This is my build.gradle file:

apply plugin: 'com.android.application'

apply plugin: 'kotlin-android'

apply plugin: 'kotlin-android-extensions'

android {
    compileSdkVersion 29
    buildToolsVersion "29.0.0"
    defaultConfig {
        applicationId "io.github.animeshz.airbent_android"
        minSdkVersion 21
        targetSdkVersion 29
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
    
    android.sourceSets {
        androidTest.java.srcDirs += "src/androidTest/kotlin"
//        debug.java.srcDirs += "src/debug/kotlin"
        main.java.srcDirs += "src/main/kotlin"
        test.java.srcDirs += "src/test/kotlin"
    }
}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
    implementation 'androidx.appcompat:appcompat:1.1.0'
    implementation 'androidx.core:core-ktx:1.2.0'
    implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'androidx.test:runner:1.2.0'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
    implementation "org.jetbrains.kotlin:kotlin-reflect:1.3.61"

    implementation "org.jetbrains.kotlinx:kotlinx-coroutines-core:1.3.3"
    implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:1.3.3"
    implementation "io.ktor:ktor-client-android:$ktor_version"
}

This is my xml file:

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context=".MainActivity">

    <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Hello World!"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintLeft_toLeftOf="parent"
            app:layout_constraintRight_toRightOf="parent"
            app:layout_constraintTop_toTopOf="parent"/>

</androidx.constraintlayout.widget.ConstraintLayout>

Under the details of the error popped in the xml editor:

java.lang.AssertionError: Call to createView failed
    at android.view.BridgeInflater.lambda$createViewFromCustomInflater$0(BridgeInflater.java:269)
    at android.view.BridgeInflater.createViewFromCustomInflater(BridgeInflater.java:286)
    at android.view.BridgeInflater.onCreateView(BridgeInflater.java:124)
    at android.view.LayoutInflater.onCreateView(LayoutInflater.java:720)
    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:788)
    at android.view.BridgeInflater.createViewFromTag(BridgeInflater.java:310)
    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:730)
    at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:863)
    at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:72)
    at android.view.LayoutInflater.rInflate(LayoutInflater.java:837)
    at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:824)
    at android.view.LayoutInflater.inflate(LayoutInflater.java:515)
    at android.view.LayoutInflater.inflate(LayoutInflater.java:394)
    at com.android.layoutlib.bridge.impl.RenderSessionImpl.inflate(RenderSessionImpl.java:323)
    at com.android.layoutlib.bridge.Bridge.createSession(Bridge.java:394)
    at com.android.tools.idea.layoutlib.LayoutLibrary.createSession(LayoutLibrary.java:200)
    at com.android.tools.idea.rendering.RenderTask.createRenderSession(RenderTask.java:572)
    at com.android.tools.idea.rendering.RenderTask.lambda$inflate$5(RenderTask.java:698)
    at java.base/java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1700)
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
    at java.base/java.lang.Thread.run(Thread.java:834)

Any help would be appreciated!

So the newest version of the dependencies that Intellij IDE recommends to update had the problem. I reverted back to the old version of these four dependencies:

implementation 'androidx.appcompat:appcompat:1.0.2'
implementation 'androidx.core:core-ktx:1.0.2'
androidTestImplementation 'androidx.test:runner:1.1.1'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.1'

And turn on Show Layout Decorations attached a snapshot below:

在此处输入图片说明

And this fixed the issue. Hopefully somebody else would find this useful if he/she had the same problem!

The problem occurred to me in Android Studio 4.1 Canary 4.

The problem is with the new layout rendering system in the canary build.

Solution

Go to Settings - Experimental

Turn off the Use new Layout Rendering Engine

在此处输入图片说明

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM