当前位置: 首页 > 知识库问答 >
问题:

错误:仅从Android O ( - min-api 26)开始支持调用自定义

羊舌成周
2023-03-14

我最近开始学习如何通过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:德兴时出错。

原因:com . Android . tools . r8 . compilationfailedexception:编译未能完成

原因:com.android.tools.r8.utils。AbortException:错误:仅从Android O(--min api 26)开始支持调用定义

有没有办法恢复到我以前的Android Studio版本?

如果不是,新版本中发生了什么变化导致创建dex文件失败?

我已经尝试按照这里的建议在< code>gradle.properties中添加< code > Android . enabled 8 = true ,但是没有成功。

编辑#1:

还将添加多DexEnabled绑定到应用程序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'
}

共有3个答案

东郭勇
2023-03-14

对我来说,在BUILD中遵循命令。格雷德删除了该错误。

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

我只是补充道

multiDexEnabled true
宗意蕴
2023-03-14

我必须从buildTypes配置中删除useProGuard 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"
        }
    }
}
孙钱青
2023-03-14

尝试将以下内容添加到您的应用程序/build.gradle以使您的Android项目编译与Java8兼容。

android {
    ....
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
    ....
}
 类似资料: