AndroidStudio 3.0beta2如果使用rxjava2和java8的lambda表达式,会出现如下形式的错误:
Exception in thread "main" java.lang.IllegalArgumentException at com.google.common.base.Preconditions.checkArgument(Preconditions.java:108) at com.google.devtools.build.android.desugar.DefaultMethodClassFixer$DefaultMethodFinder.visit(DefaultMethodClassFixer.java:295) at org.objectweb.asm.ClassReader.accept(Unknown Source) at org.objectweb.asm.ClassReader.accept(Unknown Source) at com.google.devtools.build.android.desugar.DefaultMethodClassFixer.defaultMethodsDefined(DefaultMethodClassFixer.java:173) at com.google.devtools.build.android.desugar.DefaultMethodClassFixer.visitEnd(DefaultMethodClassFixer.java:75)
相关错误可以在 https://stackoverflow.com/questions/45604099/rxjavaplugins-error-didnt-find-class-com-google-devtools-build-android-desugar #6找到答案。
意思是说:
1、就是使用java8的时候,minSdkVersion需小于19,并不要使用java8的特性,如lambda等;
或
2、使用java7;
从我的测试来看:
使用方案1,验证失败;
方案2可行。
希望google尽早修复这个bug吧...