gpt4 book ai didi

android - 多个dex文件定义Lorg/intellij/lang/annotations/JdkConstants$CursorType

转载 作者:行者123 更新时间:2023-11-29 19:04:16 25 4
gpt4 key购买 nike

此类 dex 问题开始出现的具体时间不详。清除项目,使缓存无效无济于事。似乎我对 intellij 注释有问题,但包括或排除它对它没有任何影响。

当我从这个 post 添加解决方案时,问题貌似解决了,但是切换flavor后,又随机出现branch dex问题。是否有任何分步解决方案,一般如何摆脱 dex 问题?

Error:Error converting bytecode to dex:
Cause: com.android.dex.DexException: Multiple dex files define Lorg/intellij/lang/annotations/JdkConstants$CursorType;
Error:com.android.dex.DexException: Multiple dex files define Lorg/intellij/lang/annotations/JdkConstants$CursorType;
Error: at com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:661)
Error: at com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:616)
Error: at com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:598)
Error: at com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:171)
Error: at com.android.dx.merge.DexMerger.merge(DexMerger.java:198)
Error: at com.android.builder.dexing.DexArchiveMergerCallable.call(DexArchiveMergerCallable.java:61)
Error: at com.android.builder.dexing.DexArchiveMergerCallable.call(DexArchiveMergerCallable.java:36)
Error: at java.util.concurrent.ForkJoinTask$AdaptedCallable.exec(ForkJoinTask.java:1424)
Error: at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289)
Error: at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1056)
Error: at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1692)
Error: at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157)
Error:Execution failed for task ':app:transformDexArchiveWithDexMergerForAlfaDebug'.
> com.android.build.api.transform.TransformException: com.android.dex.DexException: Multiple dex files define Lorg/intellij/lang/annotations/JdkConstants$CursorType;

这是我正在使用的 gradle 应用程序文件。

buildscript {
repositories {
jcenter()
mavenCentral()
maven { url 'https://maven.fabric.io/public' }
}

dependencies {
classpath 'io.fabric.tools:gradle:1.25.0'
classpath "io.realm:realm-gradle-plugin:1.0.0"
}
}
apply plugin: 'com.android.application'
apply plugin: 'io.fabric'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-kapt'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'realm-android'

repositories {
maven { url 'https://maven.fabric.io/public' }
mavenCentral()
}

def versionPropsCode = 0
def versionPropsName = "1.0.0"
def versionPropsFile = file('version.properties')
def applicationName = "my.app.name"
def applicationIdName = "${applicationGroup}.${applicationName}"
def devApplicationIdName = "${applicationIdName}.dev"
def alfaApplicationIdName = "${applicationIdName}.alfa"
def betaApplicationIdName = "${applicationIdName}.beta"
def rcApplicationIdName = "${applicationIdName}.rc"

android {

compileSdkVersion 26
buildToolsVersion '26.0.2'

defaultConfig {
applicationId applicationIdName
minSdkVersion 15
targetSdkVersion 26
versionCode versionPropsCode
versionName versionPropsName
renderscriptTargetApi 15
renderscriptSupportModeEnabled true
multiDexEnabled true
vectorDrawables.useSupportLibrary = true
setProperty("archivesBaseName", "$applicationId-$versionName-$versionCode")
}

dexOptions {
javaMaxHeapSize "4g"
preDexLibraries = false
}

packagingOptions {
exclude 'META-INF/LICENSE'
exclude 'META-INF/NOTICE'
exclude 'META-INF/services/javax.annotation.processing.Processor'

exclude 'META-INF/LICENSE-FIREBASE.txt'
exclude 'META-INF/INDEX.LIST'
}

buildTypes {
debug {}
release {
}
}

flavorDimensions "api"

productFlavors {
dev {
dimension "api"
applicationId devApplicationIdName
}
alfa {
dimension "api"
applicationId alfaApplicationIdName
}
beta {
dimension "api"
}
production {
dimension "api"
applicationId applicationIdName
}
}
testOptions {
animationsDisabled = true
}

}
ext {
supportLibVersion = '26.1.0'
firebaseLibVersion = '11.6.2'
gmsLibVersion = '11.0.2'
AAVersion = "4.3.1"
archVersion = "1.0.0"
}

configurations {
cleanedAnnotations

compile.exclude group: 'org.jetbrains' , module:'annotations'
}

dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
releaseImplementation 'com.squareup.leakcanary:leakcanary-android-no-op:1.4-beta2'

implementation('com.crashlytics.sdk.android:crashlytics:2.8.0@aar') {
transitive = true
exclude group: 'com.crashlytics.sdk.android:crashlytics', module: 'app'
}

implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlinVersion"
implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlinVersion"

implementation "com.android.support:support-annotations:$supportLibVersion"

implementation 'com.android.support:multidex:1.0.2'
implementation "com.android.support:appcompat-v7:$supportLibVersion"
implementation "com.android.support:cardview-v7:$supportLibVersion"
implementation "com.android.support:recyclerview-v7:$supportLibVersion"
implementation "com.android.support:support-v4:$supportLibVersion"
implementation "com.android.support:design:$supportLibVersion"
implementation "com.android.support:palette-v7:$supportLibVersion"
implementation 'com.android.support.constraint:constraint-layout:1.0.2'

implementation "com.google.android.gms:play-services-location:$firebaseLibVersion"
implementation "com.google.android.gms:play-services-analytics:$firebaseLibVersion"
implementation "com.google.android.gms:play-services-auth:$firebaseLibVersion"

implementation "com.google.firebase:firebase-appindexing:$firebaseLibVersion"
implementation "com.google.firebase:firebase-messaging:$firebaseLibVersion"
implementation "com.google.firebase:firebase-core:$firebaseLibVersion"
implementation "com.google.firebase:firebase-database:$firebaseLibVersion"
implementation "com.google.firebase:firebase-config:$firebaseLibVersion"
implementation 'com.firebase:firebase-client-android:2.3.1'

implementation 'com.facebook.android:facebook-android-sdk:4.27.0'
implementation 'com.facebook.network.connectionclass:connectionclass:1.0.1'

implementation 'com.daimajia.androidanimations:library:2.3@aar'
implementation 'com.daimajia.swipelayout:library:1.2.0@aar'
implementation 'com.daimajia.easing:library:2.1@aar'

implementation 'com.github.ksoichiro:android-observablescrollview:1.6.0'
implementation 'com.github.bumptech.glide:glide:3.7.0'
implementation('com.github.rey5137:material:1.2.4') {
exclude group: 'com.android.support', module: 'appcompat-v7'
}

implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlinVersion"
implementation("org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlinVersion") {
exclude group: 'org.jetbrains', module: 'annotations'
}

implementation 'com.squareup.okio:okio:1.13.0'
debugImplementation 'com.squareup.leakcanary:leakcanary-android:1.4-beta2'
releaseImplementation 'com.squareup.leakcanary:leakcanary-android-no-op:1.4-beta2'

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

implementation 'eu.inloop:androidviewmodel:1.3.4'
implementation 'com.wefika:flowlayout:0.4.1'
implementation 'com.makeramen:roundedimageview:2.2.1'
implementation 'com.github.chrisbanes:PhotoView:2.1.3'
implementation 'jp.wasabeef:recyclerview-animators:2.2.7'
implementation 'com.davemorrissey.labs:subsampling-scale-image-view:3.5.0'
implementation 'it.sephiroth.android.library.easing:android-easing:1.0.3'
implementation 'org.apache.commons:commons-lang3:3.5'

implementation "android.arch.lifecycle:runtime:$archVersion"
implementation "android.arch.lifecycle:extensions:$archVersion"

implementation files("${buildDir}/libs/annotations-cleaned.jar") { builtBy 'cleanAnnotationsJar' }

cleanedAnnotations 'org.jetbrains:annotations:13.0'

implementation project(':paper-onboarding-release')

// Instrumentation test dependencies
androidTestImplementation('com.android.support.test.espresso:espresso-core:3.0.0') {
exclude module: 'support-annotations'
}
androidTestImplementation('com.android.support.test.espresso:espresso-intents:3.0.0') {
exclude module: 'support-annotations'
}
androidTestImplementation 'com.android.support.test.espresso:espresso-contrib:3.0.0'
androidTestImplementation 'com.android.support.test.uiautomator:uiautomator-v18:2.1.1'
androidTestImplementation ('com.github.andrzejchm.RESTMock:android:0.2.2')

// Unit tests dependencies
testImplementation 'junit:junit:4.12'
testImplementation 'com.squareup.leakcanary:leakcanary-android-no-op:1.4-beta2'

androidTestImplementation "com.android.support:support-annotations:$supportLibVersion"

implementation('com.android.support.test.espresso:espresso-idling-resource:3.0.0')

implementation 'com.facebook.stetho:stetho:1.5.0'
implementation('com.facebook.stetho:stetho-okhttp:1.5.0') {
exclude group: 'com.squareup.okhttp'
}

debugImplementation 'com.squareup.leakcanary:leakcanary-android:1.4-beta2'

cleanedAnnotations 'org.jetbrains:annotations:13.0'
}

apply plugin: 'com.google.gms.google-services'
apply plugin: 'com.jfrog.artifactory'
apply plugin: 'maven-publish'

project.afterEvaluate {
project.android.applicationVariants.all { variant ->
variant.outputs.all { output ->
project.publishing.publications.create(variant.name, MavenPublication) {
groupId applicationIdName
version variant.versionName
artifactId variant.name
if (output.outputFile.exists()) {
artifact(output.outputFile)
}
}
}
}
}

List<String> artifactoryPublications = new ArrayList<String>()
project.android.applicationVariants.all { artifactoryPublications.add(it.name) }

artifactory {
contextUrl = "$System.env.ARTIFACTORY_PUBLISH_CONTEXT_URL"
publish {
repository {
repoKey = 'my-repo-key'
username = "$user"
password = "$pass"
}
defaults {
publishArtifacts = true
artifactoryPublications.each { publications(it) }
properties = ['qa.level': 'basic', 'dev.team': 'core']
publishIvy = false
publishPom = false
}
}
}

task grantAlfaAnimationPermissions(type: Exec, dependsOn: "installAlfaDebug") {
group = 'permission'
description = 'Grant permissions for testing.'

def absolutePath = file('..') // Get project absolute path
commandLine "$absolutePath/set_animation_permissions.sh $alfaApplicationIdName".split(" ")
}

task grantProductionAnimationPermissions(type: Exec, dependsOn: "installProductionDebug") {
group = 'permission'
description = 'Grant permissions for testing.'

def absolutePath = file('..') // Get project absolute path
commandLine "$absolutePath/set_animation_permissions.sh $applicationIdName".split(" ")
}

//https://discuss.kotlinlang.org/t/org-jetbrains-annotations-notnull-problem-with-android-build/629/5
task cleanAnnotationsJar(type:Jar, dependsOn:configurations.cleanedAnnotations) {
archiveName = "annotations-cleaned.jar"
exclude 'org/jetbrains/annotations/NotNull.class'
exclude 'org/jetbrains/annotations/Nullable.class'

doFirst {
configurations.cleanedAnnotations.each { f ->
project.logger.debug("Found ${f} in cleanedAnnotations")
from zipTree(f)
}
}
}

// Source: http://stackoverflow.com/q/29908110/112705
afterEvaluate {
// When launching individual tests from Android Studio, it seems that only the assemble tasks
// get called directly, not the install* versions
tasks.each { task ->
if (task.name.startsWith("assembleAlfaDebugAndroidTest")) {
task.dependsOn grantAlfaAnimationPermissions
}
if (task.name.startsWith("assembleProductionDebugAndroidTest")) {
task.dependsOn grantProductionAnimationPermissions
}
}
}

最佳答案

在加载的 Kotlin 包中排除 annotations 模块对我有用。但是,您在这里使用了多个 Kotlin 版本:

implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlinVersion"
implementation("org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlinVersion") {
exclude group: 'org.jetbrains', module: 'annotations'
}

我建议也排除非 jre7 版本中的注释:

    implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlinVersion"{
exclude group: 'org.jetbrains', module: 'annotations'
}
implementation("org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlinVersion") {
exclude group: 'org.jetbrains', module: 'annotations'
}

干净的构建也可以解决各种缓存错误。如果这不起作用,我建议您检查项目的先前版本,其中 gradle 构建过程没有失败,并逐步包含新的依赖项。使用这种方法,您可以轻松找到冲突的包。

关于android - 多个dex文件定义Lorg/intellij/lang/annotations/JdkConstants$CursorType,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47814758/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com