Описание проблемы
Я написал простой пример, который использует выражение Lambda. Код работает нормально, пока я не запустил на нем unit test. Как только я запустил unit test, он терпит неудачу из-за ошибки ниже
Окружающая среда
Android Studio 2.2 Preview 3
Ошибка
В компиляторе произошла ошибка (1.8.0_76-release). пожалуйста файл ошибка с компилятором Java через страницу отчетов об ошибках Java (http://bugreport.java.com) после проверки базы данных ошибок (http://bugs.java.com) для дубликатов. Включите свою программу и после диагностики в вашем отчете. Спасибо. com.sun.tools.javac.code.Symbol $CompletionFailure: файл класса для java.lang.invoke.MethodType не найден
: app: compileDebugJavaWithJavac FAILED
FAILURE: сбой сборки с исключением.
Что пошло не так: выполнение выполнено для задачи ': app: compileDebugJavaWithJavac'.
Ошибка компиляции; для получения подробной информации см. вывод ошибки компилятора.
Попробуйте: запустите с опцией -stacktrace, чтобы получить трассировку стека. Запустите с опцией -info или --debug, чтобы получить больше выходных данных журнала.
СТРОГО НЕИСПРАВНО
RxDefer.java
import rx.Observable;
import rx.Subscriber;
class RxDefer {
private Observable<Integer> getInt() {
return Observable.create(new Observable.OnSubscribe<Integer>() {
@Override
public void call(Subscriber<? super Integer> aSubscriber) {
if (aSubscriber.isUnsubscribed())
return;
aSubscriber.onNext(42);
aSubscriber.onCompleted();
}
});
}
void createDefer() {
Observable.defer(RxDefer.this::getInt).subscribe(aInteger -> {
System.out.println(String.valueOf(aInteger));
});
}
}
RxDeferTest.java
@RunWith(PowerMockRunner.class)
@PrepareForTest(RxDefer.class)
public class RxDeferTest {
@Test
public void createDefer() {
RxDefer defer = new RxDefer();
defer.createDefer();
}
}
build.gradle
apply plugin: 'com.android.application'
android {
...
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
dependencies {
...
testCompile(
'junit:junit:4.12'
, 'org.robolectric:robolectric:3.0'
, 'org.powermock:powermock-module-junit4:1.6.4'
, 'org.powermock:powermock-module-junit4-rule:1.6.4'
, 'org.powermock:powermock-api-mockito:1.6.4'
, 'org.powermock:powermock-classloading-xstream:1.6.4'
)
}