Android 多个dex文件定义Lorg/intellij/lang/annotations/JdkConstants$CursorType
这类dex问题开始出现的确切时间。 清除项目,使缓存无效没有帮助。 似乎我对intellij注释有问题,但包括或排除它对它没有任何影响 当我从中添加解决方案时,问题似乎已得到解决,但在切换风味或分支索引后,问题再次随机出现。有没有一步一步的解决办法,一般如何摆脱dex问题Android 多个dex文件定义Lorg/intellij/lang/annotations/JdkConstants$CursorType,android,android-studio,android-gradle-plugin,android-studio-3.0,dex,Android,Android Studio,Android Gradle Plugin,Android Studio 3.0,Dex,这类dex问题开始出现的确切时间。 清除项目,使缓存无效没有帮助。 似乎我对intellij注释有问题,但包括或排除它对它没有任何影响 当我从中添加解决方案时,问题似乎已得到解决,但在切换风味或分支索引后,问题再次随机出现。有没有一步一步的解决办法,一般如何摆脱dex问题 Error:Error converting bytecode to dex: Cause: com.android.dex.DexException: Multiple dex files define Lorg/intel
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
}
}
}
buildscript{
存储库{
jcenter()
mavenCentral()
maven{url'https://maven.fabric.io/public' }
}
依赖关系{
类路径'io.fabric.tools:gradle:1.25.0'
类路径“io.realm:realm渐变插件:1.0.0”
}
}
应用插件:“com.android.application”
应用插件:“io.fabric”
应用插件:“kotlin android”
应用插件:“kotlin kapt”
应用插件:“kotlin android扩展”
应用插件:'realmandroid'
存储库{
maven{url'https://maven.fabric.io/public' }
mavenCentral()
}
def versionPropsCode=0
def versionPropsName=“1.0.0”
def versionPropsFile=文件('version.properties')
def applicationName=“my.app.name”
def applicationIdName=“${applicationGroup}.${applicationName}”
def DEVApplicationDNAME=“${applicationDNAME}.dev”
def alfaApplicationIdName=“${applicationIdName}.alfa”
def betaApplicationIdName=“${applicationIdName}.beta”
def rcApplicationIdName=“${applicationIdName}.rc”
安卓{
编译DK26版
buildToolsVersion'26.0.2'
默认配置{
应用程序ID应用程序名称
第15版
targetSdkVersion 26
版本代码版本PropsCode
版本名称版本专有名称
renderscriptTargetApi 15
renderscriptSupportModeEnabled true
多索引启用真
vectorDrawables.useSupportLibrary=true
setProperty(“archivesBaseName”,“$applicationId-$versionName-$versionCode”)
}
德克斯选项{
javaMaxHeapSize“4g”
preDexLibraries=false
}
包装选项{
排除“META-INF/许可证”
排除“META-INF/通知”
排除“META-INF/services/javax.annotation.processing.Processor”
排除“META-INF/LICENSE-FIREBASE.txt”
排除“META-INF/INDEX.LIST”
}
建筑类型{
调试{}
释放{
}
}
“空气污染指数”
产品风味{
发展{
维度“api”
applicationId devapplicationdname
}
阿尔法{
维度“api”
applicationId alfaapplicationDNAME
}
贝塔{
维度“api”
}
生产{
维度“api”
应用程序ID应用程序名称
}
}
测试选项{
animationsDisabled=真
}
}
分机{
supportLibVersion='26.1.0'
firebaseLibVersion='11.6.2'
gmsLibVersion='11.0.2'
aa版本=“4.3.1”
archVersion=“1.0.0”
}
配置{
清洁说明
compile.exclude组:“org.jetbrains”,模块:“annotations”
}
依赖关系{
实现文件树(包括:['*.jar'],目录:“libs”)
releaseImplementation'com.squareup.leakcanary:leakcanary android no op:1.4-beta2'
实现('com.crashlytics.sdk.android:crashlytics:2.8。0@aar') {
可传递=真
排除组:“com.crashlytics.sdk.android:crashlytics”,模块:“app”
}
实现“org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin”
实现“org.jetbrains.kotlin:kotlin stdlib:$kotlinVersion”
实现“com.android.support:支持注释:$supportLibVersion”
实现'com.android.support:multidex:1.0.2'
实现“com.android.support:appcompat-v7:$supportLibVersion”
实现“com.android.support:cardview-v7:$supportLibVersion”
实现“com.android.support:recyclerview-v7:$supportLibVersion”
实现“com.android.support:support-v4:$supportLibVersion”
实现“com.android.support:design:$supportLibVersion”
实现“com.android.support:palette-v7:$supportLibVersion”
实现'com.android.support.constraint:constraint布局:1.0.2'
实现“com.google.android.gms:play服务位置:$firebaseLibVersion”
实现“com.google.android.gms:play services analytics:$firebaseLibVersion”
实现“com.google.android.gms:play services auth:$firebaseLibVersion”
实现“com.google.firebase:firebase appindexing:$firebaseLibVersion”
实现“com.google.firebase:firebase消息:$firebaseLibVersion”
实现“com.google.firebase:firebase核心:$firebaseLibVersion”
实现“com.google.firebase:firebase数据库:$firebaseLibVersion”
实现“com.google.firebase:firebase配置:$firebaseLibVersion”
实现'com.firebase:firebase客户端android:2.3.1'
实现'com.facebook.android:facebook android sdk:4.27.0'
实现'com.facebook.network.connectionclass:connectionclass:1.0.1'
实现'com.daimajia.androidanimations:library:2。3@aar'
实现'com.daimajia.swipelayout:library:1.2。0@aar'
实现'com.daimajia.easing:library:2。1@aar'
实现'com.github.ksoichiro:android observablescrollview:1.6.0'
实现'com.github.bumptech.glide:glide:3.7.0'
实现('com.github.rey5137:material:1.2.4'){
排除组:“com.android.support”,模块:“appcompat-v7”
}
实现“org.jetbrains.kotlin:kotlin stdlib:$kotlinVersion”
实现(“org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlinVersion”){
排除组:“org.jetbrains”,模块:“annotations”
}
实现'com.squareup.okio:okio:1.13.0'
debugImplementation'com.squareup.leakcan
implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlinVersion"
implementation("org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlinVersion") {
exclude group: 'org.jetbrains', module: 'annotations'
}
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'
}