web-dev-qa-db-ja.com

androidxへの移行後、androidx.constraintlayout.ConstraintLayoutクラスの膨張エラー

Android St​​udioメニューオプションリファクタリング-> 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)
59
KevinMo

すべての発生を変更することで問題を解決します

androidx.constraintlayout.ConstraintLayout

androidx.constraintlayout.widget.ConstraintLayout

109
KevinMo

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

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

リポジトリはmavenCentral()です。

34
Martin Zeitler

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

5
neer17

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

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

私も使用します:

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

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

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

@Override
public void onCreate() {

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

Calligraphy(Christopher Jenkinsのすばらしい仕事に感謝します)の次のリリースでもそれを修正することを望みます。

2
Tapa Save

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

implementation 'androidx.constraintlayout:constraintlayout:1.1.1'


変更する

implementation 'androidx.constraintlayout:constraintlayout:1.1.3'

問題を解決しました

1
Sakthi Vel

私にとっては、gradleを変更するとこの問題は解決しました

implementation 'androidx.constraintlayout:constraintlayout:1.1.3'

implementation "androidx.constraintlayout:constraintlayout:1.1.3"

プロジェクトを同期してからクリーンアップする

それはとても愚かです

1
amir.ashrafi

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

追加した場合は依存関係に

implementation 'androidx.constraintlayout:constraintlayout:1.x.x'正しい

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

androidx.constraintlayout.widget.ConstraintLayout

0
Mirwise Khan

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

0
Abhas Arya

依存関係を更新しましたが、エラーは解決しませんでした。その後、きれいなプロジェクトを作成してビルドしましたが、現在は機能しています。

0
Bishoy Abd

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

0
Ya Si

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

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をコンパイルできました。

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

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

次に、すべてのXMLレイアウトファイルのConstraintLayoutタグを

androidx.constraintlayout.widget.ConstraintLayout

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

0
Akshay Chopra