首页 > 解决方案 > 错误:仅从 Android O (--min-api 26) 开始支持调用自定义

问题描述

我最近开始学习如何通过 Android Studio 对 Android 设备进行编程。我的第一个应用程序运行良好,直到今天早上我升级到 Android Studio 3.4。

我收到以下编译错误:

引起:com.android.builder.dexing.DexArchiveBuilderException: 无法处理 C:\Users\Technical.gradle\caches\transforms-2\files-2.1\4f3f8638c6a9f961dae488a0387efb6b\jars\classes.jar

引起:com.android.builder.dexing.DexArchiveBuilderException:dexing 时出错。

引起:com.android.tools.r8.CompilationFailedException:编译未能完成

原因:com.android.tools.r8.utils.AbortException:错误:仅从 Android O 开始支持 Invoke-customs (--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'
}

标签: androidandroid-gradle-plugin

解决方案


尝试添加以下内容以app/build.gradle使您的 Android 项目编译与Java 8兼容。

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

推荐阅读