web-dev-qa-db-fra.com

Erreur Androidx gonflant la vue

J'essaie d'utiliser Androidx. L'application est assez nouvelle, donc il n'y a pas beaucoup de code. J'ai utilisé l'option "Refactor to Androidx" dans Android Studio. Mais quelque temps après, cela a cessé de fonctionner. Je ne sais pas ce qui l'a fait cesser de fonctionner. 

Qu'est-ce que je suis supposé faire?

Mais il y a cette erreur

Error inflating class androidx.constraintlayout.widget.ConstraintLayout

Activité principale

class MainActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        pick_image.setOnClickListener {
            toast("Pick image clicked")
        }

    }
}

XML

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

    <Button
        Android:id="@+id/pick_image"
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content"
        Android:layout_marginStart="8dp"
        Android:layout_marginTop="8dp"
        Android:layout_marginEnd="8dp"
        Android:layout_marginBottom="8dp"
        Android:text="Pick image"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

</androidx.constraintlayout.widget.ConstraintLayout>

build.gradle (app)

apply plugin: 'com.Android.application'
apply plugin: 'kotlin-Android'
apply plugin: 'kotlin-Android-extensions'

Android {
    compileSdkVersion 28
    defaultConfig {
        applicationId "com.alvarlagerlof.blurr"
        minSdkVersion 19
        targetSdkVersion 28
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-Android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation"org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"

    // Androidx
    implementation 'androidx.core:core-ktx:1.0.0-alpha3'
    implementation 'androidx.appcompat:appcompat:1.0.0-alpha1'
    implementation 'androidx.constraintlayout:constraintlayout:1.1.1'


    // Testing
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'androidx.test:runner:1.1.0-alpha3'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.0-alpha3'
}
6
alvarlagerlof

EDITED 2: Depuis la version la plus récente, ils sont revenus à androidx.constraintlayout.widget.ConstraintLayout. Continuez à lire si vous utilisez la mise en forme de contrainte version 1.1.1

EDITED: Comme La réponse d'Arturo Mejia , appuyez simplement sur ⇧⌘R ou Ctrl + Maj + R pour 

remplacer tout

androidx.constraintlayout.widget.ConstraintLayout

avec

androidx.constraintlayout.ConstraintLayout

dans tous les fichiers XML utilisant Constraint Layout.

C'est un changement depuis la version de présentation de contrainte v1.1.1 (dans la version 1.1.0, la classe ConstraintLayout est toujours dans le package ".widget")

Ancienne solution de contournement:

Changer de

implementation 'androidx.constraintlayout:constraintlayout:1.1.1'

à

implementation 'androidx.constraintlayout:constraintlayout:1.1.0'

J'ai essayé d'appuyer sur Commande + Cliquez sur ConstraintLayout dans androidx.constraintlayout.widget.ConstraintLayout du fichier XML à montre la classe d'origine mais ne trouve rien. Après avoir édité la version de mise en forme de contrainte à 1.1.0 alors c'est là.

5
Simon Pham

Dans mon cas, mise à jour de la dépendance

implementation 'androidx.constraintlayout:constraintlayout:1.1.2'

à

implementation 'androidx.constraintlayout:constraintlayout:1.1.3'

a aidé

2
Andrey

Je l'ai corrigé en changeant les dépendances de gradle sous alpha3 en alpha1

0
alvarlagerlof