web-dev-qa-db-fra.com

Après la migration vers androidx: n'a pas trouvé la classe "androidx.constraintlayout.ConstraintLayout" sur le chemin: DexPathList

J'ai cherché une réponse à mon problème, comme indiqué dans le titre de cette question, et j'ai trouvé Erreur lors du gonflement de la classe androidx.constraintlayout.ConstraintLayout après la migration vers androidx , qui s'aligne sur les instructions de migration officielles présentées dans Migration vers AndroidX . J'ai pris l'information comme m'obligeant à changer Android.support.constraint.ConstraintLayoutà androidx.constraintlayout.widget.ConstraintLayout, mais cela ne fonctionne pas pour moi.

Je n'ai rien trouvé sur la dépendance à mettre dans mon fichier Gradle, alors j'ai essayé ceci (c'est une photo dans le noir):

    implementation 'androidx.constraintlayout:constraintlayout:1.1.3'

ce qui est accepté mais quand j'ai essayé:

    implementation 'androidx.constraintlayout.widget:constraintlayout:1.1.3'

Je reçois ERREUR: échec de la résolution: androidx.constraintlayout.widget: constraintlayout: 1.1.3, j'ai donc utilisé la précédente directive de mise en œuvre.

Voici mon fichier 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"
    xmlns:tools="http://schemas.Android.com/tools"
    Android:layout_width="match_parent"
    Android:layout_height="match_parent"
    tools:context="com.example.jbiss.petminder.activities.MainActivity">

<!--<Android.support.v7.widget.Toolbar-->
<androidx.appcompat.widget.Toolbar
    xmlns:Android="http://schemas.Android.com/apk/res/Android"
    xmlns:app="http://schemas.Android.com/apk/res-auto"
    Android:id="@+id/my_toolbar"
    Android:layout_width="match_parent"
    Android:layout_height="60dp"
    Android:background="@color/colorPrimaryDark"
    Android:elevation="4dp"
    app:layout_constraintTop_toTopOf="parent"
    app:popupTheme="@style/AppTheme.PopupOverlay"/>

<TextView
    Android:id="@+id/tvMsg"
    Android:layout_width="wrap_content"
    Android:layout_height="wrap_content"
    Android:layout_marginTop="8dp"
    Android:accessibilityLiveRegion="assertive"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintHorizontal_bias="0.502"
    app:layout_constraintLeft_toLeftOf="parent"
    app:layout_constraintRight_toRightOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toBottomOf="@+id/my_toolbar"
    tools:text="error message goes here"/>

<TextView
    Android:id="@+id/tvEmVet"
    Android:layout_width="wrap_content"
    Android:layout_height="44dp"
    Android:layout_marginBottom="8dp"
    Android:layout_marginStart="20dp"
    Android:layout_marginTop="8dp"
    Android:text="@string/emergency_vet"
    Android:textColor="@Android:color/holo_red_dark"
    Android:textSize="24sp"
    app:layout_constraintStart_toEndOf="@+id/phoneCallEmVet"
    app:layout_constraintTop_toBottomOf="@+id/recyclerview1"
    tools:textSize="24sp"/>

<ImageView
    Android:id="@+id/phoneCallEmVet"
    Android:layout_width="37dp"
    Android:layout_height="44dp"
    Android:layout_marginBottom="8dp"
    Android:layout_marginLeft="24dp"
    Android:layout_marginTop="8dp"
    Android:onClick="callEmVet"
    app:layout_constraintLeft_toLeftOf="parent"
    app:layout_constraintTop_toBottomOf="@+id/recyclerview1"
    app:srcCompat="@Android:drawable/sym_action_call"/>

<androidx.recyclerview.widget.RecyclerView
    Android:id="@+id/recyclerview1"
    Android:layout_width="368dp"
    Android:layout_height="365dp"
    Android:layout_marginStart="8dp"
    Android:layout_marginTop="8dp"
    Android:text="@string/pet_name"
    app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toBottomOf="@+id/my_toolbar"/>
</androidx.constraintlayout.widget.ConstraintLayout>

L'exécution de mon application génère l'erreur suivante:

2019-02-18 19:43:36.031 458-458/com.example.jbiss.petminder E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.jbiss.petminder, PID: 458
Android.view.InflateException: Binary XML file line #2: Binary XML file line #2: Error inflating class Android.support.constraint.ConstraintLayout
Caused by: Android.view.InflateException: Binary XML file line #2: Error inflating class Android.support.constraint.ConstraintLayout
Caused by: Java.lang.ClassNotFoundException: Didn't find class "Android.support.constraint.ConstraintLayout" on path: DexPathList[[Zip file "/data/app/com.example.jbiss.petminder-i-ubC_oLu_y7-aFpiqALqg==/base.apk", Zip file "/data/app/com.example.jbiss

Suivre les informations ne fonctionne pas, pour une raison quelconque. La migration a été difficile, mais j'ai résolu de nombreux problèmes et je ne parviens plus à trouver de raison pour laquelle cela se produit lorsqu'il semble que j'ai fait ce qui était prévu.

5
Jeff

J'étais confronté au même problème après la migration vers androidX. J'ai essayé la solution ci-dessus. Mais ça n'a pas marché. J'ai ajouté mavenCentral () dans le gradle de l'application au niveau du projet.

 repositories {
            jcenter()
            maven { url 'https://maven.google.com' }
            mavenCentral()
     }

avec les changements suivants

dependencies  {
    implementation 'com.google.Android.material:material:1.0.0'
    implementation "androidx.constraintlayout:constraintlayout:1.1.3"
}

mise à jour "Android.support.constraint.ConstraintLayout" balise xml avec "androidx.constraintlayout.widget.ConstraintLayout"

finalement ça a marché.

1
Sadia Tasnim Swarna