【问题标题】:Trying to build on Android尝试在 Android 上构建
【发布时间】:2023-05-17 19:33:01
【问题描述】:

我正在尝试构建我的应用程序,但收到此错误。我已经重建、清理了项目并重置了 Android Studio。这是问题的截图:

代码错误:

错误:任务 ':app:transformClassesWithDexForDebug' 执行失败。 com.android.build.api.transform.TransformException: java.lang.RuntimeException: java.lang.RuntimeException: Unable to pre-dex 'C:\Users\User-1.gradle\caches\modules-2\files-2.1 \stax\stax-api\1.0.1\49c100caf72d658aca8e58bd74a4ba90fa2b0d70\stax-api-1.0.1.jar' 到 'C:\Users\User-1\Documents\workspace\WebUpHosting\app\build\intermediates\transforms\dex\调试\文件夹\1000\10\stax-api-1.0.1_4deeb811af0ea67608aa694ead937d7c9ac36202'

问题在于我在构建时,因为我的应用程序编译正确。有谁知道我怎么解决这个问题?

更新:

构建.gradle

apply plugin: 'com.android.application'

android {
    compileSdkVersion 26
    buildToolsVersion "26.0.0"
    defaultConfig {
        applicationId "com.webuphosting.app"
        minSdkVersion 21
        targetSdkVersion 26
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    dexOptions {
        preDexLibraries = false
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
        exclude group: 'com.android.support', module: 'support-annotations'
    })

    compile 'com.android.support:appcompat-v7:26.+'
    compile 'com.android.support.constraint:constraint-layout:1.0.2'
    compile 'com.daimajia.easing:library:2.0@aar'
    compile 'com.daimajia.androidanimations:library:2.3@aar'
    compile 'com.android.support:support-v4:26.+'
    compile 'com.readystatesoftware.systembartint:systembartint:1.0.3'
    compile 'com.android.support:recyclerview-v7:26.0.+'
    compile 'com.squareup.retrofit2:retrofit:2.3.0'
    compile "com.squareup.retrofit2:converter-simplexml:2.3.0"


    testCompile 'junit:junit:4.12'
}

【问题讨论】:

    标签: java android


    【解决方案1】:

    要查看更多代码很难说出确切的问题,但作为一种解决方案,您可以简单地禁用 pre-dex:

    布尔 preDexLibraries

    是否预 dex 库。这可以改进增量构建,但干净的构建可能会更慢。

    为此,请在主模块(应用)的build.gradle 文件中的android 内添加以下块:

    android {
      // everything else
      dexOptions {
        preDexLibraries = false
      }
    }
    

    默认设置为true,因此设置为false可以解决问题,但可能无法解决根本原因。

    【讨论】:

    • 如果我们需要进一步调查,请告知我们,如果需要,请提供完整的build.gradle 文件。
    • 我已将 buld.gradle 添加到我的问题中
    • 您是否尝试过清理您的 gradle 缓存?您可以删除~/.gradle/caches 下的文件夹,然后使用Android Studio 命令Build > Rebuild Project
    • 已解决:我添加了 Java 8 并且突然运行良好。
    • @KikeRodriguez 很高兴听到它!您可能已经引入了一个突然需要它的新依赖项?或者只是在你的一个班级之上的一个进口声明?这就是为什么经常编译是个好主意,这样你就可以在最接近源的地方捕获它!编码愉快!