任务执行失败: ':app:shrinkReleaseMultiDexComponents'

7
在Android Studio中生成签名APK时,我遇到了以下错误。
:app:shrinkReleaseMultiDexComponents FAILED
Error:Execution failed for task ':app:shrinkReleaseMultiDexComponents'.
> java.io.IOException: The output jar [E:\SVN_studio\100's\trunk\app\build\intermediates\multi-dex\release\componentClasses.jar] must be specified after an input jar, or it will be empty.
Information:BUILD FAILED
Information:1 error
Information:Total time: 35.975 secs
Information:159 warnings

这是我的build.gradle文件:
apply plugin: 'com.android.application'
apply plugin: 'com.google.gms.google-services'

android {
compileSdkVersion 21
buildToolsVersion "22.0.1"

defaultConfig {
    applicationId "<packageName>"
    minSdkVersion 16
    targetSdkVersion 21
    versionCode 1
    versionName "1.0"
    multiDexEnabled true
}
buildTypes {
    release {
        minifyEnabled true
        shrinkResources true


    }
}
packagingOptions {
    exclude 'META-INF/LICENSE.txt'
}
lintOptions {
    abortOnError true;
}

}

repositories {
   mavenCentral()
}
repositories {
   flatDir {
     dirs 'libs'
   }
}

dependencies {
 compile fileTree(include: ['*.jar'], dir: 'libs')
 compile 'com.nineoldandroids:library:2.4.0'
 compile 'com.android.support:design:22.2.1'
 compile 'com.google.android.gms:play-services-gcm:7.5.0'
 compile 'com.android.support:cardview-v7:21.0.+'
 compile 'com.github.ksoichiro:android-observablescrollview:1.5.0'
 compile 'com.android.support:support-v13:22.2.1'
 compile 'com.astuetz:pagerslidingtabstrip:1.0.1'
 compile 'com.nostra13.universalimageloader:universal-image-loader:1.9.4'
 compile 'com.android.support:recyclerview-v7:22.2.1'
 compile 'com.mikhaellopez:circularimageview:2.0.1'
 compile(name: 'app-debug', ext: 'aar')
 compile 'com.facebook.android:facebook-android-sdk:4.1.0'
 compile files('libs/YouTubeAndroidPlayerApi.jar')
}

不知道为什么会出现这些错误?有人能帮忙吗?


ه°†multiDexEnabled trueو›´و”¹ن¸؛multiDexEnabled falseم€‚ - Piyush
如果你想使用 Proguard,那么你必须写上 minifyEnabled true,然后解决错误。这样可以解决你的问题,但是你的 apk 不够安全。 - Pratik Butani
@PratikButani 好的,将其设置为true后,我需要在proguard文件中进行更改,对吗? - Ravi
@RaviRupareliya 没错,那你就会得到正确的解决方案。 - Pratik Butani
3个回答

3
尝试在minifyEnable上设置为false并同步项目。
 buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    } }

6
如果他想使用 Proguard,那怎么办?我认为如果他想使用 Proguard,这不是一个解决方案。 - Pratik Butani
我想使用Proguard,甚至想修复它。怎么做? - Narendra Singh

2

minifyEnabled设置为false,并同步gradle和项目。


2
尝试移除...
compile files('libs/YouTubeAndroidPlayerApi.jar')

因为

compile fileTree(include: ['*.jar'], dir: 'libs')

将编译所有的jar文件。


是的,我做到了,并且还有一件事,我已经将minifyEnabled设置为false,它可以正常工作。 - Ravi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接