androidxへの移行後にクラスandroidx.constraintlayout.ConstraintLayoutを拡張するときにエラーが発生しました


88

AndroidStudioのメニューオプション[リファクタリング] -> [ AndroidXへのリファクタリング]からandroidxに移行しました

次のエラーが発生します:

android.view.InflateException:バイナリXMLファイル行#2:バイナリXMLファイル行#2:クラスandroidx.constraintlayout.ConstraintLayoutのインフレーションエラー

何か案が?

スタックトレース:

2018-10-19 00:25:58.128 28131-28131/com.midounoo.midounoo E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.midounoo.midounoo, PID: 28131
    java.lang.RuntimeException: Unable to start activity ComponentInfo{com.midounoo.midounoo/com.midounoo.midounoo.Base.MainActivity}: android.view.InflateException: Binary XML file line #2: Binary XML file line #2: Error inflating class androidx.constraintlayout.ConstraintLayout
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2724)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2789)
        at android.app.ActivityThread.-wrap12(ActivityThread.java)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1527)
        at android.os.Handler.dispatchMessage(Handler.java:110)
        at android.os.Looper.loop(Looper.java:203)
        at android.app.ActivityThread.main(ActivityThread.java:6255)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1063)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:924)
     Caused by: android.view.InflateException: Binary XML file line #2: Binary XML file line #2: Error inflating class androidx.constraintlayout.ConstraintLayout
     Caused by: android.view.InflateException: Binary XML file line #2: Error inflating class androidx.constraintlayout.ConstraintLayout
     Caused by: java.lang.ClassNotFoundException: Didn't find class "androidx.constraintlayout.ConstraintLayout" on path: DexPathList[[zip file "/data/app/com.midounoo.midounoo-2/base.apk", zip file "/data/app/com.midounoo.midounoo-2/split_lib_dependencies_apk.apk", zip file "/data/app/com.midounoo.midounoo-2/split_lib_slice_0_apk.apk", zip file "/data/app/com.midounoo.midounoo-2/split_lib_slice_1_apk.apk", zip file "/data/app/com.midounoo.midounoo-2/split_lib_slice_2_apk.apk", zip file "/data/app/com.midounoo.midounoo-2/split_lib_slice_3_apk.apk", zip file "/data/app/com.midounoo.midounoo-2/split_lib_slice_4_apk.apk", zip file "/data/app/com.midounoo.midounoo-2/split_lib_slice_5_apk.apk", zip file "/data/app/com.midounoo.midounoo-2/split_lib_slice_6_apk.apk", zip file "/data/app/com.midounoo.midounoo-2/split_lib_slice_7_apk.apk", zip file "/data/app/com.midounoo.midounoo-2/split_lib_slice_8_apk.apk", zip file "/data/app/com.midounoo.midounoo-2/split_lib_slice_9_apk.apk"],nativeLibraryDirectories=[/data/app/com.midounoo.midounoo-2/lib/arm64, /system/lib64, /vendor/lib64, /system/vendor/lib64]]
        at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:380)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
        at android.view.LayoutInflater.createView(LayoutInflater.java:609)
        at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:787)
        at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:727)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:495)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:426)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:377)
        at androidx.appcompat.app.AppCompatDelegateImpl.setContentView(AppCompatDelegateImpl.java:469)
        at androidx.appcompat.app.AppCompatActivity.setContentView(AppCompatActivity.java:140)
        at com.midounoo.midounoo.Base.MainActivity.onCreate(MainActivity.java:43)
        at android.app.Activity.performCreate(Activity.java:6666)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1118)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2677)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2789)
        at android.app.ActivityThread.-wrap12(ActivityThread.java)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1527)
        at android.os.Handler.dispatchMessage(Handler.java:110)
        at android.os.Looper.loop(Looper.java:203)
        at android.app.ActivityThread.main(ActivityThread.java:6255)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1063)

スタックトレース全体を表示してください。
TheWanderer

依存関係を確認できるように、アプリレベルのビルドGradleを共有してください。
Abhinav Saxena 2018年

回答:


178

私はすべての発生を変更することによって私の問題を解決します

androidx.constraintlayout.ConstraintLayout

androidx.constraintlayout.widget.ConstraintLayout


12
はい、Android Studio変換のエラーで、androidx.constraintlayout.widget.ConstraintLayoutを使用してxmlレイアウトで発生するすべてを変更する必要があります...ありがとう
issamux 2018年

1
androidxサポートライブラリを使用して新しいプロジェクトを作成しました。メインアクティビティにandroidx.constraintlayout.widget.ConstraintLayoutが既にありますが、それでも同じエラーが発生します。
かんちゃん

2
@Kanchanマルチモジュールプロジェクトで作業している場合は、いずれかのConstraintLayoutパスを更新する必要があるかどうかを確認してください。
Vasudev

50

androidx.constraintlayout.widget.ConstraintLayout依存関係に追加します。

dependencies  {
    // https://mvnrepository.com/artifact/androidx.constraintlayout/constraintlayout
    implementation "androidx.constraintlayout:constraintlayout:1.1.3"
}

で利用できますmavenCentral()


ただしconstraintlayout、2番目は大文字で始まりませんC。正しいもの:'androidx.constraintlayout:constraintlayout:1.1.3'
ʍѳђઽ9ท

あなたは私を小さな頭痛から救いました
Koen VanLooveren19年

2
これがAndroidStudioで発生するのはなぜですか?1.1.2から1.1.3に変更しました。ありがとうございました。
BollMose

1
@ BollMose-理由はわかりませんが、1.1.2は窒息死するだけです。おそらくグーグルが逃した素敵な人々のいくつかの互換性プログラム。彼らはそれをたくさんする傾向があります。Androidプログラミングへようこそ!
SMBiggs

2
私にとって、これが唯一の受け入れ可能な答えであるはずです。1.1.2、1.1.3で構成されるバグがあり、この問題を修正します。
mochadwi

10

私は同じ問題を抱えていました、私はそれを次のように解決しました:

あなたが追加した場合あなたの扶養家族に

implementation 'androidx.constraintlayout:constraintlayout:1.x.x' それは正しいです

ただし、xmlレイアウトファイルでは、ウィジェットを次のように使用する必要があります。

androidx.constraintlayout.widget.ConstraintLayout


5

GradleファイルのリポジトリとしてmavenCentral()を追加し、に変更androidx.constraintlayout.ConstraintLayoutandroidx.constraintlayout.widget.ConstraintLayoutても問題が解決しない場合は、キャッシュの無効化を実行して、ファイルメニューから再起動してみてください。それは私のために働いた。


5

build.gradle =>依存関係のバージョンを確認する

implementation 'androidx.constraintlayout:constraintlayout:1.1.1'


変更する

implementation 'androidx.constraintlayout:constraintlayout:1.1.3'

問題を解決しました


1
そのフォーマットはうまく、この答えは私のために働いた。ありがとうございました。
LukasBimba19年

1.1.2から来ました。1.1.3にアップデートすると、これも修正されました。ありがとう!
月曜日

5

私は後に同じ問題を抱えています:

  • androidxへの移行サポートライブラリ。
  • targetSdkVesrsionを29にインクリメントします。

私も使用します:

implementation "uk.co.chrisjenx:calligraphy:2.3.0"

この質問のすべての投稿を試しましたが、成功しませんでした。

.disableCustomViewInflation()Calligraphyinitに1つの文字列を追加して修正します。

@Override
public void onCreate() {

    super.onCreate();
    // ...
    CalligraphyConfig.initDefault(new CalligraphyConfig.Builder()
            .setDefaultFontPath("fonts/Sans-Regular.ttf")
            .setFontAttrId(R.attr.fontPath)
            .disableCustomViewInflation() // <----- this fix
            .build());
    // ...
}

書道の次のリリース(クリストファー・ジェンキンス、あなたの素晴らしい仕事に感謝します)がそれを内部でも修正することを願っています。


私は自分のプロジェクトでそれを使用していませんでしたが、ライブラリは段階的に存在していました。それを削除した後、アプリは期待どおりに動作し始めました。ありがとう
PratikMhatre20年

これは私にとって完璧に機能しました。私はアンドロイドスタジオ4カナリア15によ
ミゲル・シルバ

5

プロジェクトが完全にandroidxに移行することを確認してください。私の場合、次のことがわかりました。

<android.support.constraint.ConstraintLayout

の代わりに

  <androidx.constraintlayout.widget.ConstraintLayout

だからそれを変更して私の問題を修正してください!


4

をクリックした後Refactor -> Migrate to AndroidX、build.gradle(Module:app)のすべての依存関係が最新バージョンにマークされていることを確認してください

そうでない場合、依存関係は黄色で強調表示された色で表示され、マウスをその上に置くことで変更できます。

次に、すべてのXMLレイアウトファイルのConstraintLayoutタグを次のように変更します。

androidx.constraintlayout.widget.ConstraintLayout

より安全なオプションとして、プロジェクトをクリーンアップし、上記の手順の後で再度同期します。


2

制約レイアウトの依存関係を追加したことを確認してください

 dependencies  {
    implementation "androidx.constraintlayout:constraintlayout:1.1.3"
}

に変更を加えました

<androidx.constraintlayout.widget.ConstraintLayout instead of

<android.support.constraint.ConstraintLayout

1

xmlから既存のConstraintLayoutタグをコピーして貼り付けたため、問題が発生していました。AndroidStudioでConstraintLayoutタグを最初から削除して再度追加するだけで、問題が修正されました。


1

必ずに変更してください

<androidx.constraintlayout.widget.ConstraintLayout

の代わりに

<android.support.constraint.ConstraintLayout

そして

<androidx.constraintlayout.widget.Barrier

の代わりに

<android.support.constraint.Barrier

1

Android Studio4.0でこの問題が発生しました。android studio4.0を数日間問題なく使用しました。どこからともなく、デザイナービューが機能しなくなったようです。これを修正するには、Android Studioをアンインストールし、最新のAndroidStudioバージョンをインストールする必要がありました。


0

うん。mavenCentral()と正しい依存関係は私の同じ問題を解決します


0

同様のエラーが発生しました。

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.myapp/com.myapp.MainActivity}: android.view.InflateException: Binary XML file line #2: Binary XML file line #2: Error inflating class androidx.constraintlayout.widget.ConstraintLayout
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2757)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2818)
        at android.app.ActivityThread.-wrap12(ActivityThread.java)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1557)
        at android.os.Handler.dispatchMessage(Handler.java:102)
        at android.os.Looper.loop(Looper.java:163)
        at android.app.ActivityThread.main(ActivityThread.java:6393)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:933)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:823)
    Caused by: android.view.InflateException: Binary XML file line #2: Binary XML file line #2: Error inflating class androidx.constraintlayout.widget.ConstraintLayout
    Caused by: android.view.InflateException: Binary XML file line #2: Error inflating class androidx.constraintlayout.widget.ConstraintLayout
    Caused by: java.lang.reflect.InvocationTargetException
        at java.lang.reflect.Constructor.newInstance0(Native Method)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:430)
        at android.view.LayoutInflater.createView(LayoutInflater.java:652)
        at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:812)
        at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:752)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:499)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:430)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:377)
        at androidx.appcompat.app.AppCompatDelegateImpl.setContentView(AppCompatDelegateImpl.java:469)
        at androidx.appcompat.app.AppCompatActivity.setContentView(AppCompatActivity.java:140)
        at com.myapp.MainActivity.onCreate(MainActivity.java:23)
        at android.app.Activity.performCreate(Activity.java:6858)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1119)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2710)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2818)
        at android.app.ActivityThread.-wrap12(ActivityThread.java)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1557)
        at android.os.Handler.dispatchMessage(Handler.java:102)
        at android.os.Looper.loop(Looper.java:163)
        at android.app.ActivityThread.main(ActivityThread.java:6393)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:933)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:823)
    Caused by: java.lang.NoClassDefFoundError: Failed resolution of: Landroidx/constraintlayout/widget/R$styleable;
        at androidx.constraintlayout.widget.ConstraintLayout.init(ConstraintLayout.java:590)
        at androidx.constraintlayout.widget.ConstraintLayout.<init>(ConstraintLayout.java:567)
        ... 23 more
    Caused by: java.lang.ClassNotFoundException: Didn't find class "androidx.constraintlayout.widget.R$styleable" on path: DexPathList[[zip file "/data/app/com.myapp-1/base.apk"],nativeLibraryDirectories=[/data/app/com.myapp-1/lib/arm64, /system/lib64, /vendor/lib64]]
        at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:380)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
        ... 25

推奨事項に従う:

add androidx.constraintlayout.ConstraintLayout to the dependencies:

dependencies  {
    implementation "androidx.constraintlayout:constraintlayout:1.1.3"
}

そしてリポジトリmavenCentral()。

私のために働きます。APKをコンパイルできました。


0

依存関係を更新しましたが、エラーは解決しませんでした。それから私はクリーンなプロジェクトとビルドを行い、それは現在機能しています。


0
  1. [リファクタリング]-> [AndroidXにリファクタリング]をクリックする前に、すべてのデフォルトを検索してください
  2. このhttps://developer.android.com/jetpack/androidx/migrate/class-mappingsを開き、「android.support.v4.widget.DrawerLayout」を見つけます。同じ行で、AndroidXクラス名は「androidx.drawerlayout.widget.DrawerLayout」です。それをコピーします。

ここに画像の説明を入力してください

  1. プロジェクトのコード、レイアウト、メニューですべての「android.support.v4.widget.DrawerLayout」を「androidx.drawerlayout.widget.DrawerLayout」に置き換えます。すべての置き換えで機能します。

つまり、マッピングを見つけて、プロジェクト全体で使用するということです。


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.