[android] androidx로 마이그레이션 한 후 androidx.constraintlayout.ConstraintLayout 클래스 확장 오류

방금 Android Studio 메뉴 옵션 Refactor- > Refactor to AndroidX를 통해 androidx로 마이그레이션했습니다.

다음과 같은 오류가 발생합니다.

android.view.InflateException : 이진 XML 파일 줄 # 2 : 이진 XML 파일 줄 # 2 : 클래스 androidx.constraintlayout.ConstraintLayout 확장 오류

어떤 생각?

Stacktrace :

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)



답변

나는 모든 발생을 변경하여 내 문제를 해결합니다.

androidx.constraintlayout.ConstraintLayout

…에

androidx.constraintlayout.widget.ConstraintLayout


답변

androidx.constraintlayout.widget.ConstraintLayout종속성에 추가하십시오 .

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

에서 사용할 수 있습니다 mavenCentral().


답변

나는 같은 문제가 있었고 다음과 같이 해결했습니다.

당신이 추가 한 경우 당신의 의존에서

implementation 'androidx.constraintlayout:constraintlayout:1.x.x' 맞아요

하지만 XML 레이아웃 파일에서 위젯을 다음과 같이 사용해야합니다.

androidx.constraintlayout.widget.ConstraintLayout


답변

만약 추가 한 후 mavenCentral ()을 당신의 Gradle을 파일 저장소로하고 변경 androidx.constraintlayout.ConstraintLayout하는 androidx.constraintlayout.widget.ConstraintLayout문제는 다음 일을 시도가 해결되지 않는 무효화 캐시와 다시 시작 파일 메뉴에서. 그것은 나를 위해 일했습니다.


답변

build.gradle => 종속성 버전 확인

implementation 'androidx.constraintlayout:constraintlayout:1.1.1'

바꾸다

implementation 'androidx.constraintlayout:constraintlayout:1.1.3'

문제를 해결했다


답변

프로젝트가 androidx로 완전히 마이그레이션되는지 확인하십시오.

<android.support.constraint.ConstraintLayout

대신에

  <androidx.constraintlayout.widget.ConstraintLayout

그래서 그것을 변경하고 내 문제가 해결되었습니다!


답변

나는 다음과 같은 문제가 있습니다.

  • androidx로 마이그레이션 지원 라이브러리;
  • targetSdkVesrsion을 29로 증가시킵니다.

또한 다음을 사용합니다.

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

이 질문의 모든 게시물을 시도했지만 성공하지 못했습니다.

.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());
    // ...
}

다음 캘리 그라피 릴리스 (크리스토퍼 젠킨스의 훌륭한 작업에 감사드립니다)가 내부에서도 문제가 해결되기를 바랍니다.