由于shrinkReleaseMultiDexComponents,Android发布构建失败

由于shrinkReleaseMultiDexComponents,Android发布构建失败,android,android-studio,gradle,build,Android,Android Studio,Gradle,Build,我真的很难构建我的应用程序的发布版本 这是我在运行/gradlew assembleerelease--stacktrace--debug 在Android Studio中,它也会吐出同样的东西,我已经上网了,但还没有找到解决方案 17:57:41.664 [INFO] [org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter] Executing task ':app:shrinkReleaseMultiDexCompo

我真的很难构建我的应用程序的发布版本

这是我在运行
/gradlew assembleerelease--stacktrace--debug

在Android Studio中,它也会吐出同样的东西,我已经上网了,但还没有找到解决方案

17:57:41.664 [INFO] [org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter] Executing task ':app:shrinkReleaseMultiDexComponents' (up-to-date check took 0.002 secs) due to:
  No history is available.
17:57:41.665 [DEBUG] [org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter] Executing actions for task ':app:shrinkReleaseMultiDexComponents'.
17:57:41.717 [INFO] [system.out] ProGuard, version 5.2.1
17:57:41.745 [DEBUG] [org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter] Finished executing task ':app:shrinkReleaseMultiDexComponents'
17:57:41.745 [LIFECYCLE] [class org.gradle.TaskExecutionLogger] :app:shrinkReleaseMultiDexComponents FAILED
17:57:41.746 [INFO] [org.gradle.execution.taskgraph.AbstractTaskPlanExecutor] :app:shrinkReleaseMultiDexComponents (Thread[main,5,main]) completed. Took 0.091 secs.
17:57:41.747 [DEBUG] [org.gradle.execution.taskgraph.AbstractTaskPlanExecutor] Task worker [Thread[main,5,main]] finished, busy: 8.329 secs, idle: 0.049 secs
17:57:41.771 [ERROR] [org.gradle.BuildExceptionReporter] 
17:57:41.774 [ERROR] [org.gradle.BuildExceptionReporter] FAILURE: Build failed with an exception.
17:57:41.774 [ERROR] [org.gradle.BuildExceptionReporter] 
17:57:41.775 [ERROR] [org.gradle.BuildExceptionReporter] * What went wrong:
17:57:41.775 [ERROR] [org.gradle.BuildExceptionReporter] Execution failed for task ':app:shrinkReleaseMultiDexComponents'.
17:57:41.782 [ERROR] [org.gradle.BuildExceptionReporter] > java.io.IOException: The output jar [/Users/jacob/Documents/MyApp/app/build/intermediates/multi-dex/release/componentClasses.jar] must be specified after an input jar, or it will be empty.
17:57:41.783 [ERROR] [org.gradle.BuildExceptionReporter] 
17:57:41.795 [ERROR] [org.gradle.BuildExceptionReporter] * Exception is:
17:57:41.797 [ERROR] [org.gradle.BuildExceptionReporter] org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:shrinkReleaseMultiDexComponents'.
17:57:41.797 [ERROR] [org.gradle.BuildExceptionReporter]    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:69)
17:57:41.797 [ERROR] [org.gradle.BuildExceptionReporter]    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:46)
17:57:41.798 [ERROR] [org.gradle.BuildExceptionReporter]    at org.gradle.api.internal.tasks.execution.PostExecutionAnalysisTaskExecuter.execute(PostExecutionAnalysisTaskExecuter.java:35)
17:57:41.798 [ERROR] [org.gradle.BuildExceptionReporter]    at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:64)
17:57:41.798 [ERROR] [org.gradle.BuildExceptionReporter]    at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:58)
17:57:41.799 [ERROR] [org.gradle.BuildExceptionReporter]    at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:42)
17:57:41.799 [ERROR] [org.gradle.BuildExceptionReporter]    at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:52)
17:57:41.799 [ERROR] [org.gradle.BuildExceptionReporter]    at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:53)
17:57:41.799 [ERROR] [org.gradle.BuildExceptionReporter]    at org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:43)
17:57:41.800 [ERROR] [org.gradle.BuildExceptionReporter]    at org.gradle.api.internal.AbstractTask.executeWithoutThrowingTaskFailure(AbstractTask.java:305)
17:57:41.800 [ERROR] [org.gradle.BuildExceptionReporter]    at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.executeTask(AbstractTaskPlanExecutor.java:79)
17:57:41.800 [ERROR] [org.gradle.BuildExceptionReporter]    at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.processTask(AbstractTaskPlanExecutor.java:63)
17:57:41.800 [ERROR] [org.gradle.BuildExceptionReporter]    at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.run(AbstractTaskPlanExecutor.java:51)
17:57:41.800 [ERROR] [org.gradle.BuildExceptionReporter]    at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor.process(DefaultTaskPlanExecutor.java:23)
17:57:41.801 [ERROR] [org.gradle.BuildExceptionReporter]    at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter.execute(DefaultTaskGraphExecuter.java:88)
17:57:41.801 [ERROR] [org.gradle.BuildExceptionReporter]    at org.gradle.execution.SelectedTaskExecutionAction.execute(SelectedTaskExecutionAction.java:29)
17:57:41.801 [ERROR] [org.gradle.BuildExceptionReporter]    at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:62)
17:57:41.801 [ERROR] [org.gradle.BuildExceptionReporter]    at org.gradle.execution.DefaultBuildExecuter.access$200(DefaultBuildExecuter.java:23)
17:57:41.802 [ERROR] [org.gradle.BuildExceptionReporter]    at org.gradle.execution.DefaultBuildExecuter$2.proceed(DefaultBuildExecuter.java:68)
17:57:41.802 [ERROR] [org.gradle.BuildExceptionReporter]    at org.gradle.execution.DryRunBuildExecutionAction.execute(DryRunBuildExecutionAction.java:32)
17:57:41.802 [ERROR] [org.gradle.BuildExceptionReporter]    at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:62)
17:57:41.802 [ERROR] [org.gradle.BuildExceptionReporter]    at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:55)
17:57:41.802 [ERROR] [org.gradle.BuildExceptionReporter]    at org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:149)
17:57:41.803 [ERROR] [org.gradle.BuildExceptionReporter]    at org.gradle.initialization.DefaultGradleLauncher.doBuild(DefaultGradleLauncher.java:106)
17:57:41.803 [ERROR] [org.gradle.BuildExceptionReporter]    at org.gradle.initialization.DefaultGradleLauncher.run(DefaultGradleLauncher.java:86)
17:57:41.803 [ERROR] [org.gradle.BuildExceptionReporter]    at org.gradle.launcher.exec.InProcessBuildActionExecuter$DefaultBuildController.run(InProcessBuildActionExecuter.java:80)
17:57:41.804 [ERROR] [org.gradle.BuildExceptionReporter]    at org.gradle.launcher.cli.ExecuteBuildAction.run(ExecuteBuildAction.java:33)
17:57:41.804 [ERROR] [org.gradle.BuildExceptionReporter]    at org.gradle.launcher.cli.ExecuteBuildAction.run(ExecuteBuildAction.java:24)
17:57:41.804 [ERROR] [org.gradle.BuildExceptionReporter]    at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:36)
17:57:41.804 [ERROR] [org.gradle.BuildExceptionReporter]    at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:26)
17:57:41.805 [ERROR] [org.gradle.BuildExceptionReporter]    at org.gradle.launcher.cli.RunBuildAction.run(RunBuildAction.java:51)
17:57:41.807 [ERROR] [org.gradle.BuildExceptionReporter]    at org.gradle.internal.Actions$RunnableActionAdapter.execute(Actions.java:171)
17:57:41.807 [ERROR] [org.gradle.BuildExceptionReporter]    at org.gradle.launcher.cli.CommandLineActionFactory$ParseAndBuildAction.execute(CommandLineActionFactory.java:237)
17:57:41.809 [ERROR] [org.gradle.BuildExceptionReporter]    at org.gradle.launcher.cli.CommandLineActionFactory$ParseAndBuildAction.execute(CommandLineActionFactory.java:210)
17:57:41.810 [ERROR] [org.gradle.BuildExceptionReporter]    at org.gradle.launcher.cli.JavaRuntimeValidationAction.execute(JavaRuntimeValidationAction.java:35)
17:57:41.810 [ERROR] [org.gradle.BuildExceptionReporter]    at org.gradle.launcher.cli.JavaRuntimeValidationAction.execute(JavaRuntimeValidationAction.java:24)
17:57:41.811 [ERROR] [org.gradle.BuildExceptionReporter]    at org.gradle.launcher.cli.CommandLineActionFactory$WithLogging.execute(CommandLineActionFactory.java:206)
17:57:41.812 [ERROR] [org.gradle.BuildExceptionReporter]    at org.gradle.launcher.cli.CommandLineActionFactory$WithLogging.execute(CommandLineActionFactory.java:169)
17:57:41.813 [ERROR] [org.gradle.BuildExceptionReporter]    at org.gradle.launcher.cli.ExceptionReportingAction.execute(ExceptionReportingAction.java:33)
17:57:41.814 [ERROR] [org.gradle.BuildExceptionReporter]    at org.gradle.launcher.cli.ExceptionReportingAction.execute(ExceptionReportingAction.java:22)
17:57:41.814 [ERROR] [org.gradle.BuildExceptionReporter]    at org.gradle.launcher.Main.doAction(Main.java:33)
17:57:41.815 [ERROR] [org.gradle.BuildExceptionReporter]    at org.gradle.launcher.bootstrap.EntryPoint.run(EntryPoint.java:45)
17:57:41.815 [ERROR] [org.gradle.BuildExceptionReporter]    at org.gradle.launcher.bootstrap.ProcessBootstrap.runNoExit(ProcessBootstrap.java:54)
17:57:41.816 [ERROR] [org.gradle.BuildExceptionReporter]    at org.gradle.launcher.bootstrap.ProcessBootstrap.run(ProcessBootstrap.java:35)
17:57:41.816 [ERROR] [org.gradle.BuildExceptionReporter]    at org.gradle.launcher.GradleMain.main(GradleMain.java:23)
17:57:41.817 [ERROR] [org.gradle.BuildExceptionReporter]    at org.gradle.wrapper.BootstrapMainStarter.start(BootstrapMainStarter.java:33)
17:57:41.818 [ERROR] [org.gradle.BuildExceptionReporter]    at org.gradle.wrapper.WrapperExecutor.execute(WrapperExecutor.java:130)
17:57:41.819 [ERROR] [org.gradle.BuildExceptionReporter]    at org.gradle.wrapper.GradleWrapperMain.main(GradleWrapperMain.java:48)
17:57:41.819 [ERROR] [org.gradle.BuildExceptionReporter] Caused by: org.gradle.internal.UncheckedException: java.io.IOException: The output jar [/Users/jacob/Documents/MyApp/app/build/intermediates/multi-dex/release/componentClasses.jar] must be specified after an input jar, or it will be empty.
17:57:41.819 [ERROR] [org.gradle.BuildExceptionReporter]    at org.gradle.internal.UncheckedException.throwAsUncheckedException(UncheckedException.java:39)
17:57:41.819 [ERROR] [org.gradle.BuildExceptionReporter]    at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:66)
17:57:41.820 [ERROR] [org.gradle.BuildExceptionReporter]    at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$StandardTaskAction.doExecute(AnnotationProcessingTaskFactory.java:218)
17:57:41.820 [ERROR] [org.gradle.BuildExceptionReporter]    at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$StandardTaskAction.execute(AnnotationProcessingTaskFactory.java:211)
17:57:41.820 [ERROR] [org.gradle.BuildExceptionReporter]    at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$StandardTaskAction.execute(AnnotationProcessingTaskFactory.java:200)
17:57:41.820 [ERROR] [org.gradle.BuildExceptionReporter]    at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:579)
17:57:41.821 [ERROR] [org.gradle.BuildExceptionReporter]    at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:562)
17:57:41.821 [ERROR] [org.gradle.BuildExceptionReporter]    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:80)
17:57:41.821 [ERROR] [org.gradle.BuildExceptionReporter]    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:61)
17:57:41.821 [ERROR] [org.gradle.BuildExceptionReporter]    ... 47 more
17:57:41.821 [ERROR] [org.gradle.BuildExceptionReporter] Caused by: java.io.IOException: The output jar [/Users/jacob/Documents/MyApp/app/build/intermediates/multi-dex/release/componentClasses.jar] must be specified after an input jar, or it will be empty.
17:57:41.822 [ERROR] [org.gradle.BuildExceptionReporter]    at proguard.ConfigurationChecker.check(ConfigurationChecker.java:64)
17:57:41.822 [ERROR] [org.gradle.BuildExceptionReporter]    at proguard.ProGuard.execute(ProGuard.java:73)
17:57:41.822 [ERROR] [org.gradle.BuildExceptionReporter]    at proguard.gradle.ProGuardTask.proguard(ProGuardTask.java:1074)
17:57:41.822 [ERROR] [org.gradle.BuildExceptionReporter]    at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:63)
17:57:41.822 [ERROR] [org.gradle.BuildExceptionReporter]    ... 54 more
17:57:41.823 [ERROR] [org.gradle.BuildExceptionReporter] 
17:57:41.823 [LIFECYCLE] [org.gradle.BuildResultLogger] 
17:57:41.823 [LIFECYCLE] [org.gradle.BuildResultLogger] BUILD FAILED
17:57:41.823 [LIFECYCLE] [org.gradle.BuildResultLogger] 
17:57:41.823 [LIFECYCLE] [org.gradle.BuildResultLogger] Total time: 25.463 secs
这是我的配置

buildscript {
    repositories {
        maven { url 'https://maven.fabric.io/public' }
    }

    dependencies {
        classpath 'io.fabric.tools:gradle:1.+'
    }
}

apply plugin: 'com.android.application'
apply plugin: 'io.fabric'

repositories {
    maven { url 'https://maven.fabric.io/public' }
}

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.1"
    defaultConfig {
        applicationId "com.MyApp"
        minSdkVersion 16
        targetSdkVersion 23
        versionCode 9
        versionName "0.9.3"
        multiDexEnabled = true
    }
    packagingOptions {
        exclude 'META-INF/NOTICE'
        exclude 'META-INF/DEPENDENCIES.txt'
        exclude 'META-INF/LICENSE.txt'
        exclude 'META-INF/NOTICE.txt'
        exclude 'META-INF/NOTICE'
        exclude 'META-INF/LICENSE'
        exclude 'META-INF/DEPENDENCIES'
        exclude 'META-INF/notice.txt'
        exclude 'META-INF/license.txt'
        exclude 'META-INF/dependencies.txt'
        exclude 'META-INF/LGPL2.1'
    }
    useLibrary 'org.apache.http.legacy'
    buildTypes {
        release {
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt'),
                    'proguard-android-optimize.txt'
        }
    }
}

dependencies {
    compile files('libs/org.apache.http.legacy.jar')

    compile 'org.apache.httpcomponents:httpclient-android:4.3.5'
    compile('org.apache.httpcomponents:httpmime:4.3.5') {
        exclude module: 'org.apache.httpcomponents:httpclient'
    }

    compile 'com.android.support:appcompat-v7:23.0.1'
    compile 'com.google.android.gms:play-services:7.5.0'
    compile 'com.mixpanel.android:mixpanel-android:4.6.2'
    compile 'com.android.support:recyclerview-v7:23.0.1'
    compile 'com.facebook.android:facebook-android-sdk:4.1.0'
    compile 'com.soundcloud.android:android-crop:1.0.0@aar'
    compile 'com.android.support:support-v4:23.0.1'
    compile('com.crashlytics.sdk.android:crashlytics:2.5.1@aar') {
        transitive = true;
    }
}

提前感谢

我面临着完全相同的问题,我已经能够构建已签名的apk,只需在发行版buildType中禁用minifyEnable:

minifyEnabled false
更新:

通过将以下内容添加到proguard配置(proguard-rules.pro文件),我已经解决了此问题:


这将在编译时清除/跳过所有警告,并修复我这边的问题。

为我修复问题的Proguard

下面的proguard配置文件最终为我完成了这个任务

# This is a configuration file for ProGuard.
# http://proguard.sourceforge.net/index.html#manual/usage.html

# Optimizations: If you don't want to optimize, use the
# proguard-android.txt configuration file instead of this one, which
# turns off the optimization flags.  Adding optimization introduces
# certain risks, since for example not all optimizations performed by
# ProGuard works on all versions of Dalvik.  The following flags turn
# off various optimizations known to have issues, but the list may not
# be complete or up to date. (The "arithmetic" optimization can be
# used if you are only targeting Android 2.0 or later.)  Make sure you
# test thoroughly if you go this route.

-optimizations !code/simplification/arithmetic,!code/simplification/cast,!field/*,!class/merging/*
-optimizationpasses 5
-allowaccessmodification
-dontpreverify

# The remainder of this file is identical to the non-optimized version
# of the Proguard configuration file (except that the other file has
# flags to turn off optimization).

-dontusemixedcaseclassnames
-dontskipnonpubliclibraryclasses
-verbose

-dontwarn javax.xml.**
-keepattributes *Annotation*
-keep public class com.google.vending.licensing.ILicensingService
-keep public class com.android.vending.licensing.ILicensingService

# For native methods, see http://proguard.sourceforge.net/manual/examples.html#native
-keepclasseswithmembernames class * {
    native <methods>;
}

# keep setters in Views so that animations can still work.
# see http://proguard.sourceforge.net/manual/examples.html#beans
-keepclassmembers public class * extends android.view.View {
   void set*(***);
   *** get*();
}

# We want to keep methods in Activity that could be used in the XML attribute onClick
-keepclassmembers class * extends android.app.Activity {
   public void *(android.view.View);
}

# For enumeration classes, see http://proguard.sourceforge.net/manual/examples.html#enumerations
-keepclassmembers enum * {
    public static **[] values();
    public static ** valueOf(java.lang.String);
}

-keep class * implements android.os.Parcelable {
  public static final android.os.Parcelable$Creator *;
}

-keepclassmembers class **.R$* {
    public static <fields>;
}

-keepattributes SourceFile,LineNumberTable

-dontusemixedcaseclassnames
-dontskipnonpubliclibraryclasses
-verbose

-keep class android.support.v4.app.** { *; }
-keep interface android.support.v4.app.** { *; }
-keep class android.support.v7.app.** { *; }
-keep interface android.support.v7.app.** { *; }

-keepattributes Signature
-keep class com.crashlytics.** { *; }
-dontwarn com.crashlytics.**

-keep class org.apache.http.** { *; }
-keep class org.apache.commons.codec.** { *; }
-keep class org.apache.commons.logging.** { *; }
-keep class android.net.compatibility.** { *; }
-keep class android.net.http.** { *; }
-keep class com.android.internal.http.multipart.** { *; }
-dontwarn org.apache.http.**
-dontwarn android.webkit.**

-dontwarn org.apache.http.**
-dontwarn android.net.http.AndroidHttpClient
-dontwarn com.google.android.gms.**
-dontwarn com.android.volley.toolbox.**

-dontwarn soundcloud.android.crop.*
-dontwarn org.apache.**
-dontwarn android.webkit.**
-dontwarn com.mixpanel.android.**
-dontwarn com.google.android.**

-dontwarn java.lang.invoke**
-dontwarn org.apache.lang.**
-dontwarn org.apache.commons.**

-keep class com.MyApp.subscreens.Search

-keep class android.support.v7.widget.** { *; }

# The support library contains references to newer platform versions.
# Don't warn about those in case this app is linking against an older
# platform version.  We know about them, and they are safe.
-dontwarn android.support.**
#这是ProGuard的配置文件。
# http://proguard.sourceforge.net/index.html#manual/usage.html
#优化:如果您不想优化,请使用
#proguard-android.txt配置文件,而不是此文件
#关闭优化标志。添加优化将引入
#某些风险,例如,并非所有优化都由
#ProGuard适用于Dalvik的所有版本。下面的旗帜将转向
#关闭已知存在问题的各种优化,但列表中可能没有
#完整的或最新的。(可以使用“算术”优化
#如果您只针对Android 2.0或更高版本,请使用。)请确保
#如果你走这条路,要彻底测试。
-优化!代码/简化/算术,!代码/简化/转换,!字段/*,!类/合并/*
-优化过程5
-允许访问修改
-不要翻转
#此文件的其余部分与未优化版本相同
#Proguard配置文件(除了另一个文件
#关闭优化的标志)。
-dontusemixedcaseclassnames
-DontskipnonPublicLibraryClass
-冗长的
-dontwarn javax.xml**
-keepattributes*注释*
-保持公共类com.google.vending.licensing.ILicensingService
-保持公共类com.android.vending.licensing.ILicensingService
#有关本机方法,请参见http://proguard.sourceforge.net/manual/examples.html#native
-KeepClassSwithMemberNames类*{
本地人;
}
#在视图中保留setter,以便动画仍然可以工作。
#看http://proguard.sourceforge.net/manual/examples.html#beans
-keepclassmembers公共类*扩展了android.view.view{
无效集*(***);
***得到*();
}
#我们希望在活动中保留可以在XML属性onClick中使用的方法
-keepclassmembers类*扩展了android.app.Activity{
public void*(android.view.view);
}
#有关枚举类,请参见http://proguard.sourceforge.net/manual/examples.html#enumerations
-keepclassmembers枚举*{
公共静态**[]值();
公共静态**valueOf(java.lang.String);
}
-keep class*实现android.os.Parcelable{
公开静态最终android.os.Parcelable$Creator*;
}
-keepclassmembers类**.R$*{
公共静态;
}
-keepattributes源文件,LineNumberTable
-dontusemixedcaseclassnames
-DontskipnonPublicLibraryClass
-冗长的
-keep class android.support.v4.app.*{*;}
-保留android.support.v4.app接口。**{*;}
-keep class android.support.v7.app.*{*;}
-保留android.support.v7.app接口。**{*;}
-保留署名
-保持类com.crashlytics.*{*;}
-dontwarn com.crashlytics**
-保持类org.apache.http.*{*;}
-保持类org.apache.commons.codec.*{*;}
-保持类org.apache.commons.logging.*{*;}
-保持类android.net.compatibility.*{*;}
-保持类android.net.http.*{*;}
-保持类com.android.internal.http.multipart.*{*;}
-dontwarn org.apache.http**
-dontwarn android.webkit**
-dontwarn org.apache.http**
-dontwarn android.net.http.AndroidHttpClient
-dontwarn com.google.android.gms**
-dontwarn com.android.volley.toolbox**
-dontwarn soundcloud.android.crop*
-dontwarn org.apache**
-dontwarn android.webkit**
-dontwarn com.mixpanel.android**
-dontwarn com.google.android**
-dontwarn java.lang.invoke**
-dontwarn org.apache.lang**
-dontwarn org.apache.commons**
-保留类com.MyApp.subscreens.Search
-keep类android.support.v7.widget.*{*;}
#支持库包含对较新平台版本的引用。
#如果此应用程序链接的是较旧的应用程序,请不要警告这些问题
#平台版本。我们知道他们,他们是安全的。
-dontwarn android.support**

确保输入jar确实存在。因为出现了问题

proguard.ConfigurationChecker.check(ConfigurationChecker.java:64)
当Injar为空(文件不存在或找不到)时,proguard 5.2.1会发生这种情况。比如说

task proguard(type: ProGuardTask) {    
  injars inputJar
  outjars outPutJar
  ...
}
如果inputJar不存在,则ConfigurationChecker将投诉

我查看了代码,发现ProGuardTask将JAR添加到类路径中,如果JAR确实存在或是输出。检查ProGuardTask.java的第1180行


这里也是一样,它构建时没有缩小,但对于我当前的构建,我需要将其设置为true:/我也得到了相同的设置错误:任务执行失败:应用程序:shrinkReleaseMultiDexComponents。我更新了所有工具和支持库。我仍然得到..你找到任何修复了吗..面对同样的问题。@sanjeev我似乎已经通过修改我的proguard优化文件修复了这个问题。不知道是哪条线把它修好了。但该文件是我出现问题的原因。@codingViking你能发布修改完成的proguard优化文件吗?还原到支持库23.0.0对我来说很有效,一定是23.0.1中的一个错误。同时,我正在使用支持库23.0.0。但仍然得到同样的错误。
task proguard(type: ProGuardTask) {    
  injars inputJar
  outjars outPutJar
  ...
}
while (fileIterator.hasNext())
{
     File file = (File)fileIterator.next();
     if (output || file.exists())
     {
         //skip
         classPath.add(classPathEntry);
      }
}