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

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

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

Caused by: com.android.builder.dexing.DexArchiveBuilderException: Failed to process C:\Users\Technical.gradle\caches\transforms-2\files-2.1\4f3f8638c6a9f961dae488a0387efb6b\jars\classes.jar

Caused by: com.android.builder.dexing.DexArchiveBuilderException: Error while dexing.

Caused by: com.android.tools.r8.CompilationFailedException: Compilation failed to complete

Caused by: com.android.tools.r8.utils.AbortException: Error: Invoke-customs are only supported starting with 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'
}
33
0
21 025
19
Перейти к ответу Данный вопрос помечен как решенный

Ответы 19

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

    defaultConfig {
    ...
    multiDexEnabled true
    }

добавить то куда?

DrBwts 23.04.2019 16:09

ваши проекты файл build.gradle

Zun 23.04.2019 16:15

Я получаю следующую ошибку, когда делаю это, ERROR: Could not find method defaultConfig() for arguments [build_1wu37mi9z13d069hc2dpowvjx$_run_closure3@546708aa] on project ':app' of type org.gradle.api.Project. Open File

DrBwts 23.04.2019 17:06

да нашел, но это не решает исходные ошибки компиляции

DrBwts 24.04.2019 09:41
Ответ принят как подходящий

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

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

После того, как я добавил библиотеку apachi commons lang в проект, я столкнулся с этой ошибкой. Затем после добавления вышеприведенного кода моя ошибка была исправлена. Спасибо.

Saeid Z 09.06.2019 17:41

У меня не работает, есть идеи?

zukijuki 29.04.2020 13:54

Спасибо, это решило проблему, когда я столкнулся с этой проблемой!

KarlMeierBE 20.09.2020 12:35

В этой трассировке стека важна эта строка:

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

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

Мне пришлось удалить 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"
        }
    }
}

Если вы пытаетесь запустить apk напрямую из студии Android, старайтесь не включать

minifyEnabled true

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

//            minifyEnabled true
//            shrinkResources true

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

Если вы используете библиотеку Google Cloud, попробуйте уменьшить версию до 1.90

Добавьте следующее, чтобы ваше приложение было скомпилировано компилятором java8.

android {

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

И отключите мгновенный запуск, найденный в

Preferences->Build,Execution,Deployment->Debugger->Instant Run

Я добавил ко всем модулям этот код:

compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
}

Но ошибка все равно была. В моем случае некоторые из моих модулей использовали путь к классам «me.tatarka: gradle-retrolambda», и это привело к конфликту с этим:

compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
}

Поэтому мне нужно перейти с Retrolambda по этой ссылке: https://developer.android.com/studio/write/java8-support#migrate_from_retrolambda

Пожалуйста, добавьте эту строку в файл build.gradle.

android{
 compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8

    }
}

Если вы посмотрите на уже данные ответы, это было принятое решение, данное в апреле прошлого года.

DrBwts 31.01.2020 11:56

в вашей Android Studio перейдите к build.gradle(Module:App) затем добавьте этот блок compileOptions{} в блок android{}

android{
    compileOptions {
        sourceCompatibility 1.8
        targetCompatibility 1.8
    }
}

У меня такая же проблема. Мой был вызван ... org.apache.commons:commons-lang .... На данный момент у меня нет полного сообщения об ошибке. Эта ошибка возникает только во время Rebuild или Clean Build.

Я решил, изменив org.apache.commons:commons-text:1.8 в моем build.gradle на org.apache.commons:commons-text:1.6.

Примечание. Было предложено здесь отключить «Мгновенный запуск» в Android Studio. Эта функция не была доступна в моей Android Studio. Версия -

Android Studio 3.5.1
Build #AI-191.8026.42.35.5900203, built on September 26, 2019
Windows 10 10.0 

для kotlin вы также должны добавить kotlinOptions:

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

    kotlinOptions {
        jvmTarget = JavaVersion.VERSION_1_8.toString()
    }
}

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

Для всех, кто столкнулся с этим, я столкнулся с этой проблемой после добавления зависимости от этой библиотеки Джексона:

implementation("com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.11.1")

Приведенное выше решение "compileOptions" устранило проблему для меня.

для меня следующая команда в ПОСТРОИТЬ.ГРАДЛ удалила ошибку.

defaultConfig {
      applicationId "com.example.myapptestheader"
      minSdkVersion 21
      targetSdkVersion 29
      versionCode 1
      versionName "1.0"
      testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
   
      multiDexEnabled true
}

я только что добавил

multiDexEnabled true

Это все еще работает в 2021 году, пожалуйста, попробуйте.

android {
    compileSdkVersion 30

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
    defaultConfig {
        applicationId "com.example.android.bakingapp"
        minSdkVersion 15
        targetSdkVersion 30
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }

В моем случае это также отображалось после добавления следующих строк:

compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
}

Итак, я исправил свою проблему, просто обновив свой minSdkVersion с 19 на 21, и тогда, наконец, это сработало !!!

Я столкнулся с этой ошибкой после обновления основных библиотек в build.gradle до последних версий, к счастью, принятый ответ сработал для меня.

Причиной работы принятого ответа было изменение в последней версии основной библиотеки, ориентированной на уровень API 30, которая написана на java8, поэтому добавление зависимости от java8 решило эту проблему.

По состоянию на декабрь 2021 года это то, что работает. Причина, по которой я столкнулся с этим, заключается в отсутствии skd версии 26 и отсутствующей версии java 8. В папке build.gradle(app) добавьте следующий код, чтобы убедиться, что у вас есть правильные зависимости, конфигурации по умолчанию и совместимость с Android. . Вам пока не нужно знать, что они означают, просто знайте, что они существуют. По сути, вы пытаетесь убедиться, что Android может читать предыдущую версию вещей. Вот код, который я запускаю, чтобы убедиться, что мои приложения работают.

apply plugin: 'com.android.application'

android {

compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
}
compileSdkVersion 26
compileSdkVersion 27
compileSdkVersion 30
buildToolsVersion "30.0.2"


defaultConfig {
    applicationId "com.example.firstfirstapp"
    minSdkVersion 16
    targetSdkVersion 26
    targetSdkVersion 30
    versionCode 1
    versionName "1.0"

    testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}

buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 
'proguard-rules.pro'
    }
}

}

dependencies {
implementation fileTree(dir: "libs", include: ["*.jar"])
implementation "androidx.cardview:cardview:1.0.0"
implementation 'androidx.appcompat:appcompat:1.3.1'
implementation 'androidx.constraintlayout:constraintlayout:2.1.1'
implementation 'com.android.support:appcompat-v7:26.1.0'
implementation 'com.android.support:design:26.1.0'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test.ext:junit:1.1.3'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'

implementation 'com.android.support:appcompat-v7:26.0.0'

}

Другие вопросы по теме