我正在尝试构建我的应用,但我收到了此错误。我重建了,清理了progect并重置了Android Studio。这是问题的屏幕截图:
代码错误:
错误:任务':app:transformClassesWithDexForDebug'的执行失败。 com.android.build.api.transform.TransformException:java.lang.RuntimeException:java.lang.RuntimeException:无法预定义'C:\ Users \ User-1.gradle \ caches \ modules-2 \ files-2.1 \ stax \ stax-api \ 1.0.1 \ 49c100caf72d658aca8e58bd74a4ba90fa2b0d70 \ stax-api-1.0.1.jar'to'C:\ Users \ User-1 \ Documents \ workspace \ WebUpHosting \ app \ build \ intermediates \ transforms \ dex \调试\文件夹\ 1000 \ 10 \ STAX-API-1.0.1_4deeb811af0ea67608aa694ead937d7c9ac36202'
问题在于我正在构建,因为我的应用程序编译正确。谁知道我怎么解决这个问题?
更新:
buil.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'
}
答案 0 :(得分:0)
很难分辨出更多代码的确切问题,但作为解决方案,您可以简单地禁用pre-dex:
boolean preDexLibraries
是否预先设定图书馆。这可以改善增量构建,但是干净的构建可能会更慢。
为此,请在build.gradle
内的主模块(app)的android
文件中添加以下块:
android {
// everything else
dexOptions {
preDexLibraries = false
}
}
默认情况下,它设置为 true ,因此通过将其设置为 false ,您可以解决您的问题,但它可能无法解决根本原因。