Gradle 构建失败 java.io.IOException:输出 jar 为空
Posted
技术标签:
【中文标题】Gradle 构建失败 java.io.IOException:输出 jar 为空【英文标题】:Gradle Build Failure java.io.IOException: The output jar is empty 【发布时间】:2016-03-16 00:21:42 【问题描述】:我的 android studio 项目在正常运行应用程序时构建良好,但是当我尝试运行测试时,我收到以下 gradle 错误消息:
:app:transformClassesWithMultidexlistForDebugAndroidTest FAILED
Error:Execution failed for task ':app:transformClassesWithMultidexlistForDebugAndroidTest'.
> java.io.IOException: The output jar is empty. Did you specify the proper '-keep' options?
Information:BUILD FAILED
Information:Total time: 27.049 secs
Information:1 error
Information:0 warnings
Information:See complete output in console
让我困惑的是,它指的是 proguard 配置文件中的 -keep 选项,但 proguard 被禁用,正如您在下面的 gradle 文件中看到的那样,我已将 minifyEnabled true 注释掉:
apply plugin: 'com.android.application'
android
compileSdkVersion "Google Inc.:Google APIs:23"
buildToolsVersion "23.0.1"
defaultConfig
applicationId "com.wasptech.intellidroid"
minSdkVersion 13
versionCode 388
targetSdkVersion 22
versionName "2.38.08 - RC2"
multiDexEnabled true
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
compileOptions
sourceCompatibility JavaVersion.VERSION_1_7
targetCompatibility JavaVersion.VERSION_1_7
dexOptions
incremental true
javaMaxHeapSize "4g"
buildTypes
release
//minifyEnabled true
signingConfig signingConfigs.release
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
dependencies
compile 'org.jbundle.util.osgi.wrapped:org.jbundle.util.osgi.wrapped.org.apache.http.client:4.1.2'
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.google.android.gms:play-services:8.1.0'
compile 'com.android.support:support-v4:23.1.1'
compile 'com.android.support:support-v13:23.1.1'
compile 'com.crittercism:crittercism-android-agent:5.3.3'
compile 'com.google.code.gson:gson:2.3'
compile 'com.squareup.retrofit:retrofit:1.7.1'
compile 'com.squareup.okhttp:okhttp-urlconnection:2.0.0'
compile 'com.squareup.okhttp:okhttp:2.0.0'
compile 'com.squareup.okio:okio:1.0.0'
compile 'com.squareup:otto:1.3.5'
compile 'com.github.lecho:hellocharts-library:1.5.0@aar'
compile 'com.nostra13.universalimageloader:universal-image-loader:1.9.3'
compile 'com.squareup.picasso:picasso:2.5.2'
compile 'com.jakewharton.timber:timber:3.1.0'
compile 'com.github.PhilJay:MPAndroidChart:v2.0.7'
compile 'org.osmdroid:osmdroid-android:4.3'
compile 'org.slf4j:slf4j-simple:1.6.1'
compile project(':mobihelp_sdk_android_v1.4')
compile files('libs/osmbonuspack_v5.1.jar')
compile files('libs/espresso-1.1-bundled.jar')
compile 'com.android.support.test.espresso:espresso-core:2.2'
compile 'com.android.support.test:runner:0.3'
我该如何解决这个问题?
【问题讨论】:
你找到解决办法了吗?? 那是一段时间以前,我的记忆有点模糊,但我认为这是一个注释掉浓缩咖啡罐的情况,因为我不需要它们,除非我我会达到最大方法限制删除了它们。除此之外,尝试手动删除所有 build 和 gradle 文件夹并清理和重建项目。希望这会有所帮助! 【参考方案1】:你应该使用 testInstrumentationRunner:
com.android.test.runner.MultiDexTestRunner
【讨论】:
【参考方案2】:将multiDexEnabled
设置为false
对我有用。
【讨论】:
以上是关于Gradle 构建失败 java.io.IOException:输出 jar 为空的主要内容,如果未能解决你的问题,请参考以下文章
由于 androidannotations 插件,Gradle 构建失败