web-dev-qa-db-ja.com

androidxへの移行後:パス上にクラス "androidx.constraintlayout.ConstraintLayout"が見つかりませんでした:DexPathList

この質問のタイトルに示されているように、私の問題に対する回答を検索しましたが、 androidxへの移行後にエラーインフレーティングクラスandroidx.constraintlayout.ConstraintLayout が見つかりました。これは、提示された公式の移行手順と一致しています AndroidXへの移行 。情報を変更する必要があると判断しましたAndroid.support.constraint.ConstraintLayoutto androidx.constraintlayout.widget.ConstraintLayout、しかしこれは私にはうまくいきません。

私のgradleファイルにどの依存関係を入れるかについて私は何も見つけていないので、これを試しました(これは暗闇の中でのショットです):

    implementation 'androidx.constraintlayout:constraintlayout:1.1.3'

これは受け入れられますが、私が試したとき:

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

私はを取得しますエラー:解決に失敗しました:androidx.constraintlayout.widget:constraintlayout:1.1.3、したがって、前の実装ディレクティブを使用しました。

これが私の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>

アプリを実行すると、次のエラーが発生します。

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

何らかの理由で、情報のフォローが機能しません。移行は大変でしたが、多くの問題を解決しましたが、意図したとおりに実行したように見えても、これが発生している理由を見つけることができません。

5
Jeff

AndroidXに移行した後も同じ問題に直面していました。上記の解決策を試しました。しかし、それはうまくいきませんでした。プロジェクトレベルのアプリGradleにmavenCentral()を追加しました。

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

次の変更あり

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

更新"Android.support.constraint.ConstraintLayout" xmlタグ"androidx.constraintlayout.widget.ConstraintLayout"

ようやくうまくいきました。

1