Сбой вызова createView, как исправить предварительный просмотр экрана android в xml, который не отображается должным образом в intellij - PullRequest
0 голосов
/ 26 февраля 2020

Я довольно новичок в android, как только я создал новый проект Android и обновил все зависимости, я столкнулся с проблемой, заключающейся в том, что на вкладке дизайна xml предварительный просмотр не отображается должным образом. С ошибкой говоря Call to createView failed. Я приложил снимок ниже.

snapshot intellij-idea

Это мой build.gradle файл:

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"
}

Это мой xml файл:

<?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>

В подробностях ошибки, появившейся в редакторе xml:

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)

Буду признателен за любую помощь!

Ответы [ 2 ]

2 голосов
/ 26 февраля 2020

Таким образом, возникла проблема в новейшей версии зависимостей, которую Intellij IDE рекомендует обновить. Я вернулся к старой версии этих четырех зависимостей:

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'

И при включении Show Layout Decorations прикрепил снимок ниже:

enter image description here

И это решило проблему. Надеюсь, кто-то еще сочтет это полезным, если у него / нее будет такая же проблема!

0 голосов
/ 03 мая 2020

Проблема возникла у меня в Android Studio 4.1 Canary 4.

Проблема с новой системой рендеринга макетов в сборке канареек.

Решение

Go до Настройки - Экспериментальные

Отключение Использование нового движка рендеринга макетов

enter image description here

...