Gradle文件导致应用程序意外崩溃:膨胀类androidx.constraintlayout.ConstraintLayout时出错

时间:2019-08-28 03:27:36

标签: android androidx

所以,我更新了gradle文件,我的应用开始崩溃,出现了一些奇怪的错误。它开始崩溃,我的java类中的导航抽屉代码也出现了以前没有的错误。

我尝试使用版本控制来恢复原来的状态,但是仍然崩溃。

apply plugin: 'com.android.application'
apply plugin: 'com.google.firebase.firebase-perf'


android {
    compileSdkVersion 28
    defaultConfig {
    applicationId "com.example.shrinkio"
    minSdkVersion 22
    targetSdkVersion 28
    versionCode 1
    versionName "1.0"
    multiDexEnabled true
    testInstrumentationRunner
    "android.support.test.runner.AndroidJUnitRunner"
    vectorDrawables.useSupportLibrary = true
    buildToolsVersion "29.0.0"
}
buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
    }
}
sourceSets { main { assets.srcDirs = ['src/main/assets', 'src/main/assets/'] } }
buildToolsVersion = '28.0.3'
}

dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:28.0.0'
implementation 'com.android.support:customtabs:28.0.0'
implementation 'com.android.support.constraint:constraint-layout:1.1.3'
implementation 'com.android.support:design:28.0.0'
implementation 'com.android.support:support-vector-drawable:28.0.0'
implementation 'com.android.support:support-v4:28.0.0'
implementation 'com.android.support:recyclerview-v7:28.0.0'
implementation 'android.arch.lifecycle:extensions:1.1.1'
implementation 'com.google.firebase:firebase-storage:19.0.0'
implementation 'com.android.support:multidex:1.0.3'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
implementation 'com.google.firebase:firebase-core:17.1.0'
implementation 'com.google.firebase:firebase-auth:19.0.0'
implementation "com.google.android.gms:play-services-gcm:17.0.0"
implementation 'com.android.support:cardview-v7:28.0.0'
implementation 'com.android.support:multidex:1.0.3'
implementation 'com.google.firebase:firebase-database:19.0.0'
implementation 'com.google.firebase:firebase-perf:19.0.0'
}

这是错误:

Process: com.example.shrinkio, PID: 20948
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.shrinkio/com.example.shrinkio.Login.MainActivity}: android.view.InflateException: Binary XML file line #2 in com.example.shrinkio:layout/activity_main: Binary XML file line #2 in com.example.shrinkio:layout/activity_main: Error inflating class androidx.constraintlayout.ConstraintLayout
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3270)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3409)
    at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:83)
    at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
    at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2016)
    at android.os.Handler.dispatchMessage(Handler.java:107)
    at android.os.Looper.loop(Looper.java:214)
    at android.app.ActivityThread.main(ActivityThread.java:7356)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930)
 Caused by: android.view.InflateException: Binary XML file line #2 in com.example.shrinkio:layout/activity_main: Binary XML file line #2 in com.example.shrinkio:layout/activity_main: Error inflating class androidx.constraintlayout.ConstraintLayout
 Caused by: android.view.InflateException: Binary XML file line #2 in com.example.shrinkio:layout/activity_main: Error inflating class androidx.constraintlayout.ConstraintLayout
 Caused by: java.lang.ClassNotFoundException: androidx.constraintlayout.ConstraintLayout
    at java.lang.Class.classForName(Native Method)
    at java.lang.Class.forName(Class.java:454)
    at android.view.LayoutInflater.createView(LayoutInflater.java:815)
    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:1006)
    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:961)
    at android.view.LayoutInflater.inflate(LayoutInflater.java:659)
    at android.view.LayoutInflater.inflate(LayoutInflater.java:534)
    at android.view.LayoutInflater.inflate(LayoutInflater.java:481)
    at androidx.appcompat.app.AppCompatDelegateImpl.setContentView(AppCompatDelegateImpl.java:469)
    at androidx.appcompat.app.AppCompatActivity.setContentView(AppCompatActivity.java:140)
    at com.example.shrinkio.Login.MainActivity.onCreate(MainActivity.java:21)
    at android.app.Activity.performCreate(Activity.java:7802)
    at android.app.Activity.performCreate(Activity.java:7791)
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1299)
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3245)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3409)
    at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:83)
    at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
    at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2016)
    at android.os.Handler.dispatchMessage(Handler.java:107)
    at android.os.Looper.loop(Looper.java:214)
    at android.app.ActivityThread.main(ActivityThread.java:7356)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930)
 Caused by: java.lang.ClassNotFoundException: Didn't find class "androidx.constraintlayout.ConstraintLayout" on path: DexPathList[[zip file "/data/app/com.example.shrinkio-kyhW6IGkqM__-vcrljTxwQ==/base.apk"],nativeLibraryDirectories=[/data/app/com.example.shrinkio-kyhW6IGkqM__-vcrljTxwQ==/lib/x86, /system/lib, /system/product/lib]]
2019-08-28 08:02:42.030 20948-20948/com.example.shrinkio E/AndroidRuntime:     
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:196)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
        ... 26 more

1 个答案:

答案 0 :(得分:2)

您使用的firebase libraries需要androidx迁移。
Migrate androidx 库。
在这里您可以找到mappings from old support library artifacts
对于支持设计,请使用Material Components libraryimplementation 'com.google.android.material:material:1.0.0'

然后检查课程的课程名称。您的错误是:

  

膨胀类androidx.constraintlayout.ConstraintLayout的错误    造成原因:java.lang.ClassNotFoundException:androidx.constraintlayout.ConstraintLayout

xml标签<androidx.constraintlayout.ConstraintLayout>替换为right class

androidx.constraintlayout.widget.ConstraintLayout

在这里您可以找到class mapping

相关问题