集成 glide 后应用程序崩溃 gradle

App crashes after integrating glide gradle

My build.gradle file

应用程序在不添加 Glide 的情况下工作正常,但是当我添加 Glide 进行图像加载时,它突然在我的第一个 activity 应用程序启动时崩溃。

apply plugin: 'com.android.application'

android {
    compileSdkVersion 26
    defaultConfig {
        applicationId "com.animation.testdemo"
        minSdkVersion 17
        targetSdkVersion 26
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'com.android.support:appcompat-v7:26.1.0'
    implementation 'com.android.support.constraint:constraint-layout:1.0.2'

    implementation 'com.jakewharton:butterknife:8.8.1'
    annotationProcessor 'com.jakewharton:butterknife-compiler:8.8.1'

    implementation "android.arch.persistence.room:runtime:1.0.0"
    annotationProcessor "android.arch.persistence.room:compiler:1.0.0"

    implementation 'com.github.bumptech.glide:glide:4.6.1'
    annotationProcessor 'com.github.bumptech.glide:compiler:4.6.1'

    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.1'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
}

Log Crash :

02-24 16:09:57.354 10475-10475/? E/AndroidRuntime: FATAL EXCEPTION: main
                                                   Process: com.animation.testdemo, PID: 10475
                                                   java.lang.NoSuchMethodError: No static method getFont(Landroid/content/Context;ILandroid/util/TypedValue;ILandroid/widget/TextView;)Landroid/graphics/Typeface; in class Landroid/support/v4/content/res/ResourcesCompat; or its super classes (declaration of 'android.support.v4.content.res.ResourcesCompat' appears in /data/app/com.animation.testdemo-2/base.apk)
                                                       at android.support.v7.widget.TintTypedArray.getFont(TintTypedArray.java:119)
                                                       at android.support.v7.widget.AppCompatTextHelper.updateTypefaceAndStyle(AppCompatTextHelper.java:208)
                                                       at android.support.v7.widget.AppCompatTextHelper.loadFromAttributes(AppCompatTextHelper.java:110)
                                                       at android.support.v7.widget.AppCompatTextHelperV17.loadFromAttributes(AppCompatTextHelperV17.java:38)
                                                       at android.support.v7.widget.AppCompatTextView.<init>(AppCompatTextView.java:81)
                                                       at android.support.v7.widget.AppCompatTextView.<init>(AppCompatTextView.java:71)
                                                       at android.support.v7.widget.AppCompatTextView.<init>(AppCompatTextView.java:67)
                                                       at android.support.v7.widget.Toolbar.setTitle(Toolbar.java:753)
                                                       at android.support.v7.widget.ToolbarWidgetWrapper.setTitleInt(ToolbarWidgetWrapper.java:261)
                                                       at android.support.v7.widget.ToolbarWidgetWrapper.setWindowTitle(ToolbarWidgetWrapper.java:243)
                                                       at android.support.v7.widget.ActionBarOverlayLayout.setWindowTitle(ActionBarOverlayLayout.java:621)
                                                       at android.support.v7.app.AppCompatDelegateImplV9.onTitleChanged(AppCompatDelegateImplV9.java:631)
                                                       at android.support.v7.app.AppCompatDelegateImplV9.ensureSubDecor(AppCompatDelegateImplV9.java:328)
                                                       at android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:284)
                                                       at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:139)
                                                       at com.animation.testdemo.activities.Main2Activity.onCreate(Main2Activity.java:14)
                                                       at android.app.Activity.performCreate(Activity.java:6679)
                                                       at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1118)
                                                       at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2618)

尝试了很多次清理和构建,但没有找到任何合适的解决方案。

根据 glide 的回购 issue 你应该:

  • 使用 appcompat-v7:27.0.2 & glide:4.4.0+

所以只需更新编译SDK到27和支持库即可。它会解决你的问题:)

如果您出于任何原因需要保留该版本,您可以按照 here 所述排除依赖项。在您的 gradle 文件中:

implementation('com.github.bumptech.glide:glide:4.6.1') {
        exclude group: "com.android.support"
    }
    you got this error because glide version 4.6.1 using targetSdkVersion 27, and you are using targetSdkVersion 26.. 

    try changing your 
    compileSdkVersion 26

    buildToolsVersion '26.0.3'
    targetSdkVersion 27
 or
    try lower version of glide : 
    implementation 'com.github.bumptech.glide:glide:4.4.0'