Двойная ошибка класса при сборке для плагина Джексон - PullRequest
0 голосов
/ 21 ноября 2019

После открытия проекта, над которым я работал некоторое время, которое у меня не было открыто пару месяцев, я получаю сообщение об ошибке при попытке скомпилировать мой Android-проект. Полученную ошибку можно увидеть здесь: enter image description here

Мой грейд сборки проекта выглядит следующим образом:

// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
    repositories {
        google()
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.5.0'

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        mavenCentral()
        jcenter()
        google()
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

А зависимости моего приложения build.gradle таковы:следующие (несколько элементов удалены из-за конфиденциальных данных):

apply plugin: 'com.android.application'

android {
    compileSdkVersion 27
    buildToolsVersion '28.0.2'

    defaultConfig {
        applicationId "com.x.x"
        minSdkVersion 18
        targetSdkVersion 27
        versionCode 45
        versionName "1.45.1"
    }
    packagingOptions {
        exclude 'META-INF/LICENSE'
        exclude 'META-INF/NOTICE'
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            signingConfig signingConfigs.release
        }
    }
}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation files('libs/jackson-core-2.7.0.jar')
    implementation files('libs/jackson-databind-2.7.0.jar')
    implementation files('libs/jackson-annotations-2.7.0.jar')
    // for joda
    implementation 'com.android.support:appcompat-v7:27.1.1'
    implementation 'com.android.support:support-v4:27.1.1'
    implementation 'com.android.support:design:27.1.1'
    implementation 'com.google.firebase:firebase-appindexing:16.0.1'
    implementation 'com.android.support:cardview-v7:27.1.1'
    implementation 'com.google.code.gson:gson:2.8.2'
    implementation 'joda-time:joda-time:2.9.4'
    implementation 'com.google.android.exoplayer:exoplayer:r1.5.2'
    implementation 'com.afollestad.material-dialogs:core:0.9.6.0'
    implementation 'com.afollestad.material-dialogs:commons:0.9.6.0'
    implementation 'com.karumi:dexter:4.0.0'
    implementation 'com.scottyab:aescrypt:0.0.1'
    implementation 'com.wdullaer:materialdatetimepicker:3.4.1'
    implementation 'com.android.support.constraint:constraint-layout:1.1.3'
    implementation 'net.sourceforge.htmlcleaner:htmlcleaner:2.16'
    implementation 'io.sentry:sentry-android:1.7.5'
    testImplementation 'junit:junit:4.12'
    configurations.all {
        exclude group: 'com.android.support', module: 'support-v13'
    }
}

Я попытался изменить

    implementation files('libs/jackson-core-2.7.0.jar')
    implementation files('libs/jackson-databind-2.7.0.jar')
    implementation files('libs/jackson-annotations-2.7.0.jar')

на более новую версию (2.9.9, после того, как я загрузил их вручную), ноно безрезультатно. Ошибка просто говорит так же, как на картинке выше, но с 2.9.9 вместо 2.8.7.

Я также попытался изменить implementation files на implementation, который использует Gradle для загрузки плагина, но он выдал ту же ошибку.

Я, конечно, также пытался очистить и перестроить проект, который тоже ничего не сделал.

Полная ошибка в моем окне «Вывод сборки» отображается в https://pastebin.com/EPUuEXTd.

Я посмотрел вокруг разные ответы, как здесь, на StackOverflow, так и на Github, но не нашел вопросовэто может быть связано с моим.

1 Ответ

0 голосов
/ 21 ноября 2019

Так что я все исправил сам. Ошибка произошла, когда я включил зависимость implementation 'io.sentry:sentry-android:1.7.5'. После некоторых проб и ошибок я обнаружил, что это вызвало ошибку, потому что Sentry включает собственную версию библиотеки Jackson, поэтому я включил ее сам и включил ее через Sentry.

Удаление

    implementation files('libs/jackson-core-2.7.0.jar')
    implementation files('libs/jackson-databind-2.7.0.jar')
    implementation files('libs/jackson-annotations-2.7.0.jar')

Однако проблема не была устранена, поскольку файлы все еще находились в проекте. Мне нужно было полностью удалить файлы 3 .jar из папки проекта, чтобы ошибка исчезла. Затем я повторно добавил Джексона в качестве реализации зависимостей, но на этот раз через Gradle, а не через файловую систему, вот так:

    implementation 'com.fasterxml.jackson.core:jackson-core:2.9.9'
    implementation 'com.fasterxml.jackson.core:jackson-annotations:2.9.9'
    implementation 'com.fasterxml.jackson.core:jackson-databind:2.9.9'

И теперь все работает. Имейте в виду - номера версий Sentry и Jackson не имеют значения, я просто решил обновить, пока я был на нем.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...