ClassCastException при создании подписанного Apk

Моя зависимость от Gradle

     repositories {
        google()
        mavenCentral()
//        maven { url "http://maven.ghostscript.com" }
        maven { url 'https://jitpack.io' }
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:4.1.1'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }

Используйте эту зависимость приложения

     buildTypes {
        release {
            shrinkResources true
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'

        }
    }
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }


    packagingOptions {
        exclude 'META-INF/DEPENDENCIES'
        exclude 'META-INF/NOTICE'
        exclude 'META-INF/NOTICE.txt'
        exclude 'META-INF/LICENSE'
        exclude 'META-INF/LICENSE.txt'
    }
    kotlinOptions {
        jvmTarget = '1.8'
    }
}

dependencies {
    implementation fileTree(dir: "libs", include: ["*.jar"])
    implementation 'androidx.appcompat:appcompat:1.2.0'
    implementation 'androidx.constraintlayout:constraintlayout:2.0.4'
    implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
    implementation 'androidx.core:core-ktx:1.3.2'
    implementation 'androidx.recyclerview:recyclerview:1.1.0'
    //implementation files('libs/aspose-slides-20.6-android.via.java.jar')
    androidTestImplementation 'androidx.test.ext:junit:1.1.2'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'
    implementation 'com.google.android.material:material:1.2.1'
    implementation 'com.github.bumptech.glide:glide:4.11.0'
    annotationProcessor 'com.github.bumptech.glide:compiler:4.11.0'
    implementation 'commons-io:commons-io:20030203.000550'
    implementation "com.pdfview:pdfview-android:1.0.0"


    //implementation 'com.android.support:multidex:1.0.3'
    // https://github.com/googlesamples/easypermissions
//    implementation 'pub.devrel:easypermissions:1.1.0'
    implementation ('com.github.junrar:junrar:7.4.0') {
        ['org.apache.commons','commons-logging'].each {
            exclude group: "$it"
        }
    }

    implementation 'io.reactivex.rxjava3:rxandroid:3.0.0'
    // Because RxAndroid releases are few and far between, it is recommended you also
    // explicitly depend on RxJava's latest version for bug fixes and new features.
    // (see https://github.com/ReactiveX/RxJava/releases for latest 3.x.x version)
    implementation 'io.reactivex.rxjava3:rxjava:3.0.8'

//    implementation files('libs/itsrts_pptviewer.jar')
    implementation 'com.agrawalsuneet.androidlibs:dotsloader:1.4'
    implementation 'com.google.android.gms:play-services-ads:19.6.0'


    implementation 'org.apache.commons:commons-lang3:3.11'
    implementation files('libs/jxl.jar')
    implementation files('libs/aspose-words-17.2.0-android.jar')
    implementation "com.folioreader:folioreader:0.5.4"

}

Эта ошибка возникает при создании версии Apk с подписью, как я могу ее решить? Невозможно решить эту ошибку при удалении кеша Gradle, а также сделать недействительным и перезапустить Android Studio.

java.lang.ClassCastException: com.android.tools.r8.s.b.C не может быть преобразован в com.android.tools.r8.s.b.B

com.android.tools.r8.CompilationFailedException: компиляция не завершилась, позиция: Lorg / readium / r2 / streamer / parser / epub / OPFParser; parseSpine (Lorg / readium / r2 / shared / parser / xml / Node; Lorg / readium / r2 / shared / Publication;) V, происхождение: C: \ Users \ Asif Malik.gradle \ caches \ transforms2 \ files2.1 \ 202fad4fee5b15436e55e2114f613e17 \ jetified-r2streamerkotlin1.0.42runtime.jar: org / readium / r2 / streamer /epub/OPFParser.class

com.android.tools.r8.s.b.C нельзя преобразовать в com.android.tools.r8.s.b.B

Кеш зависимостей Gradle может быть поврежден (иногда это происходит после тайм-аута сетевого подключения).

Повторно загрузите зависимости и синхронизируйте проект (требуется сеть)

Состояние процесса сборки Gradle (демон) может быть повреждено


person Asif Mehmood    schedule 22.12.2020    source источник
comment
** У меня есть решение этой проблемы ** Удалите {shrinkResources true minifyEnabled true} И добавьте ** `{SigningConfig SigningConfigs.debug useProguard true minifyEnabled false} ** у меня все работает нормально это решение работает отлично удалить все ошибки в созданном подписанном apk   -  person Asif Mehmood    schedule 24.12.2020
comment
Asif, отключение минификации (minifyEnabled false) явно способ избавиться от ClassCastException, которое вы видите, как это происходит при компиляции R8. Если возможно, не могли бы вы открыть вопрос на issueetracker.google.com/issues/new?component= 326788 с дополнительной информацией о версии Android Studio, где вы это видите?   -  person sgjesse    schedule 05.01.2021
comment
@sgjesse да, я решил эту проблему, я использую useProguard true minifyEnabled false   -  person Asif Mehmood    schedule 05.01.2021


Ответы (1)


Это проблема R8, которая отслеживается на странице http://issuetracker.google.com/175132220.

person sgjesse    schedule 06.01.2021
comment
По ссылке: эта проблема уже исправлена ​​в версии 2.1.87 r8. К сожалению, он не входит в комплект Android Studio 4.1.3, поэтому, если не вышла новая версия, вы можете использовать обходной путь, явно добавив его в build.gradle. - person Pawel; 23.04.2021