Только на androidTest: Invoke-таможня поддерживается только начиная с Android O - PullRequest
2 голосов
/ 13 мая 2019

Моя кодовая база использует некоторый синтаксис Java 8, такой как лямбда-выражения, и долго работала нормально.

Недавно мои инструментальные тесты в модуле перестали работать с печально известным сообщением:

AGPBI: {"kind": "error", "text": "Invoke-обычаи поддерживаются только начиная с Android O (--min-api 26) "," sources ": [{}]," tool ":" D8 "}

Это известная проблема (существует много вопросов , ссылающихся на нее), но у меня есть Java 1.8 в моем compileOptions:

compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
}

Эта проблема обнаруживается ТОЛЬКО в инструментальных тестах (т. Е. AndroidTest). Это хорошо с юнит-тестами и с самим приложением. Я уже прокомментировал все тесты из инструментальных тестов, но проблема остается.

Мои модульные тесты и тесты Android имеют одинаковые зависимости. Я перешел на тесты AndroidX, но проблема остается.

dependencies {
    implementation 'com.android.support:appcompat-v7:28.0.0'
    implementation 'com.google.android.gms:play-services-gcm:16.1.0'

    androidTestImplementation 'org.mockito:mockito-core:2.27.0'
    androidTestImplementation 'androidx.test:core:1.1.0'
    androidTestImplementation 'androidx.test:runner:1.1.1'
    androidTestImplementation 'androidx.test:rules:1.1.1'
    androidTestImplementation 'androidx.test.ext:junit:1.1.0'
    androidTestImplementation 'androidx.test.ext:truth:1.1.0'
    androidTestImplementation 'com.google.truth:truth:0.42'

    testImplementation 'org.mockito:mockito-core:2.27.0'    
    testImplementation 'androidx.test:core:1.1.0'
    testImplementation 'androidx.test:runner:1.1.1'
    testImplementation 'androidx.test:rules:1.1.1'    
    testImplementation 'androidx.test.ext:junit:1.1.0'
    testImplementation 'androidx.test.ext:truth:1.1.0'
    testImplementation 'com.google.truth:truth:0.42'
}

Я использую последние версии компиляции и назначения (я также пробовал 26 и 27), а также инструменты для сборки. Минимальная версия SDK - 14, и должна быть.

compileSdkVersion 28
buildToolsVersion '29.0.0 rc3'
defaultConfig {
    minSdkVersion 14
    targetSdkVersion 28
}

Ответы [ 2 ]

1 голос
/ 22 мая 2019

Это ошибка в Android Studio 3.5 beta. Я подал ошибку с командой Android Studio , и это будет исправлено с помощью инструментов сборки Android Studio 3.5 beta 03.

0 голосов
/ 13 мая 2019

Обновите ваш root build.gradle, чтобы использовать последнюю версию Android SDK (вы можете использовать 26 или 28).

android {
    compileSdkVersion 28
    flavorDimensions "default"
    defaultConfig {
        applicationId "com.example.myapplication"
        minSdkVersion 25
        targetSdkVersion 28
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }
...