Ошибка: Invoke-customs поддерживаются только начиная с Android O (--min-api 26) - PullRequest
4 голосов
/ 23 апреля 2019

Я недавно начал изучать, как программировать устройства Android через Android Studio.Мое первое приложение работало нормально, пока я не обновил до Android Studio 3.4 этим утром.

Я получаю следующие ошибки компиляции:

Причина: com.android.builder.dexingИсключение: Ошибка во время восстановления: Invoke-таможня поддерживается только начиная с Android O (--min-api 26)

Есть ли способ вернуться к моей предыдущей версии Android Studio?

Еслине то, что изменилось в новой версии, которая вызывает ошибку при создании файла dex?

Я попытался добавить android.enableD8=true в gradle.properties, как предлагалось здесь , но не повезло.


РЕДАКТИРОВАТЬ # 1:

Также связали добавление multiDexEnabled true к конфигурации по умолчанию в файле приложения build.gradle, но те же ошибки компиляции сохраняются.

Этот файл сборки полностью ...

apply plugin: 'com.android.application'

android {
    compileSdkVersion 28
    defaultConfig {
        applicationId "qdivision.org.qrtracker"
        minSdkVersion 15
        targetSdkVersion 28
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
        multiDexEnabled true
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'com.android.support:appcompat-v7:28.0.0'
    implementation 'com.android.support.constraint:constraint-layout:1.1.3'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.2'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
    implementation 'com.github.felHR85:UsbSerial:6.0.5'
}

Ответы [ 5 ]

6 голосов
/ 24 апреля 2019

Попробуйте добавить ниже к своему app/build.gradle, чтобы компиляция проекта Android была совместима с Java 8 .

android {
    ....
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
    ....
}
2 голосов
/ 24 апреля 2019

Мне пришлось удалить useProguard true из конфигурации buildTypes.

Согласно документации minifyEnabled true достаточно, чтобы запутать ваш код с помощью R8.

Пример:

android {
    buildTypes {
        debug {
            versionNameSuffix "-dev"
            minifyEnabled true // <- remove this line when using instant run
            useProguard true // <- remove this line
            signingConfig signingConfigs.release
            proguardFiles getDefaultProguardFile('proguard-android.txt'), "proguard-rules.pro"
        }

        release {
            shrinkResources true
            minifyEnabled true
            useProguard true // <- remove this line
            signingConfig signingConfigs.release
            proguardFiles getDefaultProguardFile('proguard-android.txt'), "proguard-rules.pro"
        }
    }
}
1 голос
/ 24 апреля 2019

Что относится к этой трассировке стека, так это строка:

Caused by: com.android.tools.r8.utils.AbortException: Error: Invoke-customs are only supported starting with Android O (--min-api 26)

Поскольку в ваших зависимостях нет библиотеки kotlin, я предполагаю, что вы работаете с Java.Я бы попробовал ответов в этом вопросе

0 голосов
/ 03 июня 2019

Если вы пытаетесь запустить apk напрямую из android studio, пожалуйста, старайтесь не включать

minifyEnabled true

Прокомментируйте следующую строку.

//            minifyEnabled true
//            shrinkResources true

Но вы можете использовать вышеуказанную строку при сборке apk.

0 голосов
/ 23 апреля 2019

попробуйте это:

    defaultConfig {
    ...
    multiDexEnabled true
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...