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'
}
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à.
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é
Je l'ai corrigé en changeant les dépendances de gradle sous alpha3 en alpha1