6

I'm getting the below error while trying to build a project in AS 3.0 canary 5. Any ideas what causes it?

build.gradle:

dependencies {
    compile 'com.google.dagger:dagger:2.11'
    compile 'com.google.dagger:dagger-android:2.11'
    compile 'com.google.dagger:dagger-android-support:2.11'
    compile 'android.arch.lifecycle:runtime:1.0.0-alpha3'
    compile 'android.arch.lifecycle:extensions:1.0.0-alpha3'
    compile 'android.arch.persistence.room:runtime:1.0.0-alpha3'
    compile 'biz.laenger.android:vpbs:0.0.4'
    compile 'commons-io:commons-io:2.5'
    compile 'com.andreabaccega:android-form-edittext:1.2.1@aar'
    compile 'com.android.support:appcompat-v7:25.4.0'
    compile 'com.android.support:cardview-v7:25.4.0'
    compile 'com.android.support:design:25.4.0'
    compile 'com.android.support:multidex:1.0.1'
    compile 'com.android.support:percent:25.4.0'
    compile 'com.android.support:recyclerview-v7:25.4.0'
    compile 'com.android.support:support-media-compat:25.4.0'
    compile 'com.android.support:support-v4:25.4.0'
    compile 'com.getbase:floatingactionbutton:1.10.1'
    compile 'com.github.piasy:GlideImageLoader:1.2.3'
    compile 'com.github.bumptech.glide:glide:3.7.0'
    compile 'com.google.android.gms:play-services-location:11.0.2'
    compile 'com.google.android.gms:play-services-maps:11.0.2'
    compile 'com.google.code.gson:gson:2.8.1'
    compile 'com.google.firebase:firebase-analytics:11.0.2'
    compile 'com.google.firebase:firebase-crash:11.0.2'
    compile 'com.google.firebase:firebase-messaging:11.0.2'
    compile 'com.google.guava:guava:22.0'
    compile 'com.romandanylyk:pageindicatorview:0.0.6'
    compile 'com.squareup.retrofit2:retrofit:2.3.0'
    compile 'com.squareup.retrofit2:converter-gson:2.3.0'
    compile 'de.hdodenhof:circleimageview:2.1.0'
    compile 'joda-time:joda-time:2.9.6'
    annotationProcessor 'com.google.dagger:dagger-android-processor:2.11'
    annotationProcessor 'com.google.dagger:dagger-compiler:2.11'
    annotationProcessor 'android.arch.lifecycle:compiler:1.0.0-alpha3'
    annotationProcessor 'android.arch.persistence.room:compiler:1.0.0-alpha3'
}

android {
    compileSdkVersion 26
    buildToolsVersion '26.0.0'


defaultConfig {
    minSdkVersion 16
    targetSdkVersion 26
    multiDexEnabled true
}

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

Error:

Error:Error converting bytecode to dex:
Cause: default or static interface method used without --min-sdk-version >= 24
Error:com.android.dx.cf.code.SimException: default or static interface method used without --min-sdk-version >= 24
Error:  at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
Error:  at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
Error:  at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
Error:  at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
Error:  at java.util.concurrent.ForkJoinTask.getThrowableException(ForkJoinTask.java:593)
Error:  at java.util.concurrent.ForkJoinTask.reportException(ForkJoinTask.java:677)
Error:  at java.util.concurrent.ForkJoinTask.join(ForkJoinTask.java:720)
Error:  at com.android.ide.common.internal.WaitableExecutor.waitForTasksWithQuickFail(WaitableExecutor.java:146)
Error:  at com.android.builder.dexing.DxDexArchiveBuilder.convertClassFileInput(DxDexArchiveBuilder.java:73)
Error:  at com.android.builder.dexing.DexArchiveBuilder.convert(DexArchiveBuilder.java:50)
Error:  at com.android.build.gradle.internal.transforms.DexArchiveBuilderTransformCallable.lambda$cacheMissAction$0(DexArchiveBuilderTransformCallable.java:237)
Error:  at com.android.builder.utils.FileCache.lambda$createFile$1(FileCache.java:260)
Error:  at com.android.builder.utils.FileCache.lambda$null$5(FileCache.java:443)
Error:  at com.android.builder.utils.SynchronizedFile.doActionWithMultiProcessLocking(SynchronizedFile.java:265)
Error:  at com.android.builder.utils.SynchronizedFile.write(SynchronizedFile.java:232)
Error:  at com.android.builder.utils.FileCache.lambda$queryCacheEntry$6(FileCache.java:415)
Error:  at com.android.builder.utils.SynchronizedFile.doActionWithMultiProcessLocking(SynchronizedFile.java:265)
Error:  at com.android.builder.utils.SynchronizedFile.read(SynchronizedFile.java:215)
Error:  at com.android.builder.utils.FileCache.queryCacheEntry(FileCache.java:391)
Error:  at com.android.builder.utils.FileCache.createFile(FileCache.java:273)
Error:  at com.android.build.gradle.internal.transforms.DexArchiveBuilderTransformCallable.getFromCacheAndCreateIfMissing(DexArchiveBuilderTransformCallable.java:174)
Error:  at com.android.build.gradle.internal.transforms.DexArchiveBuilderTransformCallable.call(DexArchiveBuilderTransformCallable.java:150)
Error:  at com.android.build.gradle.internal.transforms.DexArchiveBuilderTransformCallable.call(DexArchiveBuilderTransformCallable.java:53)
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:Caused by: com.android.dx.cf.code.SimException: default or static interface method used without --min-sdk-version >= 24
Error:  at com.android.dx.cf.code.Simulator$SimVisitor.visitConstant(Simulator.java:670)
Error:  at com.android.dx.cf.code.BytecodeArray.parseInstruction(BytecodeArray.java:765)
Error:  at com.android.dx.cf.code.Simulator.simulate(Simulator.java:102)
Error:  at com.android.dx.cf.code.Ropper.processBlock(Ropper.java:790)
Error:  at com.android.dx.cf.code.Ropper.doit(Ropper.java:745)
Error:  at com.android.dx.cf.code.Ropper.convert(Ropper.java:350)
Error:  at com.android.dx.dex.cf.CfTranslator.processMethods(CfTranslator.java:309)
Error:  at com.android.dx.dex.cf.CfTranslator.translate0(CfTranslator.java:150)
Error:  at com.android.dx.dex.cf.CfTranslator.translate(CfTranslator.java:102)
Error:  at com.android.builder.dexing.DxDexArchiveBuilder.lambda$processJobChunk$0(DxDexArchiveBuilder.java:109)
Error:  ... 5 more
Error:...at bytecode offset 00000028
Error:locals[0000]: I
Error:locals[0001]: Ljava/util/Comparator;
Error:stack[0004]: Lcom/google/common/collect/Comparators$$Lambda$0;
Error:stack[0003]: Ljava/util/function/BiConsumer;
Error:stack[0002]: Ljava/util/function/BinaryOperator;
Error:stack[0001]: Ljava/util/function/Function;
Error:stack[top0]: [Ljava/util/stream/Collector$Characteristics;
Error:...while working on block 0028
Error:...while working on method least:(ILjava/util/Comparator;)Ljava/util/stream/Collector;
Error:...while processing least (ILjava/util/Comparator;)Ljava/util/stream/Collector;
Error:...while processing com/google/common/collect/Comparators.class
Error:Execution failed for task ':mobile:transformClassesWithDexBuilderForDebug'.
> com.android.build.api.transform.TransformException: java.lang.RuntimeException: java.lang.RuntimeException: java.util.concurrent.ExecutionException: java.util.concurrent.ExecutionException: com.android.builder.utils.FileCache$FileCreatorException: com.android.builder.dexing.DexArchiveBuilderException: Unable to convert input to dex archive.
Bogdan Zurac
  • 6,348
  • 11
  • 48
  • 96
  • 1
    I'm getting the same error. It doesn't happen if I go back to guava 20.0 but I'm not sure what of the root cause. Hopefully using guava 20.0 will get you past this error, but no guarantees. Good luck. – kjones Jul 21 '17 at 20:40
  • I can confirm it's caused by Guava 22.0 It works with 20.0 or even 22.0-android, as detailed over here https://github.com/google/guava/wiki/Release22 You can answer the question, so that I can accept this as the correct answer :) – Bogdan Zurac Jul 21 '17 at 21:22

1 Answers1

14

There were changes to guava between 20.0 and 21.0 that is causing dex class transform to fail. With Release22 of guava, there is a build targeted specifically for Android. Switch your guava dependency to the following and you should be good to go.

implementation 'com.google.guava:guava:23.0-android'
Diego Plentz
  • 6,760
  • 3
  • 30
  • 31
kjones
  • 5,783
  • 2
  • 27
  • 27
  • 3
    Also, the latest one as indicated on their github page as of today (30/9/17): compile 'com.google.guava:guava:23.0-android' – Neon Warge Sep 30 '17 at 12:58