Android Studio,ProGuard无法计算Classes.jar的哈希值

这已经很长时间了,因为我在StackOverflow上提出了一个问题。 虽然我几乎每天都使用它。 无论如何; 这里是:

最近我转换到API 23; 这迫使我使用

useLibrary 'org.apache.http.legacy' 

因为他们抛出了一个简单的访问Apache库。

我的项目编译良好,在debugging模式下可以在所有testing设备上正常运行。 今天,我需要把我的项目带到生产环境,ProGuard和我们一起喊

无法计算(..)\ build \ intermediates \ classes-proguard \ release \ classes.jar的散列

没有其他错误或警告。 曾经有,但我摆脱了他们。 就像摆脱apache库的重复副本一样。

这是我的Gradle文件:

 buildscript { repositories { mavenCentral() jcenter() } dependencies { classpath 'com.android.tools.build:gradle:1.3.1' } } apply plugin: 'com.android.application' repositories { maven { url "http://dl.bintray.com/populov/maven" } mavenCentral() jcenter() } dependencies { compile 'com.github.lzyzsd:circleprogress:1.1.0@aar' compile('com.fasterxml.jackson.datatype:jackson-datatype-joda:2.0.4') { exclude module: 'joda-time' } compile 'net.danlew:android.joda:2.8.1' compile "commons-io:commons-io:+" compile 'com.google.android.gms:play-services-location:7.8.0' compile 'com.google.android.gms:play-services-nearby:7.8.0' compile ('com.google.apis:google-api-services-translate:v2-rev41-1.20.0') { // Exclude artifacts that the Android SDK/Runtime provides. exclude group: 'xpp3', module: 'shared' exclude group: 'org.apache.httpcomponents', module: 'httpclient' exclude group: 'junit', module: 'junit' exclude group: 'com.google.android', module: 'android' } compile ('com.google.http-client:google-http-client-android:1.18.0-rc') { // Exclude artifacts that the Android SDK/Runtime provides. exclude group: 'xpp3', module: 'shared' exclude group: 'org.apache.httpcomponents', module: 'httpclient' exclude group: 'junit', module: 'junit' exclude group: 'com.google.android', module: 'android' } compile 'com.theartofdev.edmodo:android-image-cropper:1.0.+' compile 'com.viewpagerindicator:library:2.4.1@aar' compile 'me.leolin:ShortcutBadger:1.0.10@aar' compile 'com.android.support:appcompat-v7:23.0.+' compile "com.android.support:support-v4:23.0.+" compile "com.android.support:gridlayout-v7:23.0.+" compile "com.android.support:cardview-v7:23.0.+" compile ( [group: 'com.fasterxml.jackson.core', name: 'jackson-core', version: '2.4.1'], [group: 'com.fasterxml.jackson.core', name: 'jackson-annotations', version: '2.4.1'], [group: 'com.fasterxml.jackson.core', name: 'jackson-databind', version: '2.4.1'] ) compile 'de.undercouch:bson4jackson:2.4.0' } // The sample build uses multiple directories to // keep boilerplate and common code separate from // the main sample code. List<String> dirs = [ 'main', // main sample code; look here for the interesting stuff. 'common', // components that are reused by multiple samples 'template'] // boilerplate code that is generated by the sample template process android { compileSdkVersion 23 buildToolsVersion "23.0.0" useLibrary 'org.apache.http.legacy' defaultConfig { minSdkVersion 10 targetSdkVersion 23 } buildTypes { debug { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt' } release { minifyEnabled true proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt' } } sourceSets { main { dirs.each { dir -> java.srcDirs "src/${dir}/java" res.srcDirs "src/${dir}/res" } } androidTest.setRoot('tests') androidTest.java.srcDirs = ['tests/src'] } packagingOptions { exclude 'META-INF/NOTICE' exclude 'META-INF/NOTICE.txt' exclude 'META-INF/LICENSE' exclude 'META-INF/LICENSE.txt' } } 

这里是proguard-rules.txt

 # Add project specific ProGuard rules here. # By default, the flags in this file are appended to flags specified # in C:\android-sdk/tools/proguard/proguard-android.txt # You can edit the include path and order by changing the proguardFiles # directive in build.gradle. # # For more details, see # http://developer.android.com/guide/developing/tools/proguard.html # Only obfuscate -dontshrink # Keep source file and line numbers for better crash logs -keepattributes SourceFile,LineNumberTable # Avoid throws declarations getting removed from retrofit service definitions -keepattributes Exceptions # Allow obfuscation of android.support.v7.internal.view.menu.** # to avoid problem on Samsung 4.2.2 devices with appcompat v21 # see https://code.google.com/p/android/issues/detail?id=78377 -keep class !android.support.v7.internal.view.menu.** { *; } # Amazon IAP library has some missing stuff -dontwarn com.amazon.** # ButterKnife uses some annotations not available on Android. -dontwarn butterknife.internal.** # Prevent ButterKnife annotations from getting renamed. -keepnames class * { @butterknife.InjectView *;} # Eventbus methods can not be renamed. -keepclassmembers class ** { public void onEvent*(**); } # Gson uses generic type information stored in a class file when working with fields. Proguard # removes such information by default, so configure it to keep all of it. -keepattributes Signature # Gson specific classes -dontwarn sun.misc.Unsafe # joda-time has some annotations we don't care about. -dontwarn org.joda.convert.** # OkHttp has some internal stuff not available on Android. -dontwarn com.squareup.okhttp.internal.** # Okio has some stuff not available on Android. -dontwarn java.nio.file.* -dontwarn org.codehaus.mojo.animal_sniffer.IgnoreJRERequirement # Oltu has some stuff not available on Android (javax.servlet), we don't use (slf4j) # and not included because it is available on Android (json). -dontwarn javax.servlet.http.** -dontwarn org.slf4j.** -dontwarn org.json.** -dontwarn com.fasterxml.** # Retrofit has some optional dependencies we don't use. -dontwarn rx.** -dontwarn retrofit.appengine.** 

我清理了我的项目; 重新启动Android Stuio甚至消灭了整个Builds目录。

 Result: Information:Gradle tasks [:Application:assembleRelease] :Application:preBuild UP-TO-DATE :Application:preReleaseBuild UP-TO-DATE :Application:checkReleaseManifest :Application:preDebugBuild UP-TO-DATE :Application:prepareComAndroidSupportAppcompatV72300Library UP-TO-DATE :Application:prepareComAndroidSupportCardviewV72300Library UP-TO-DATE :Application:prepareComAndroidSupportGridlayoutV72300Library UP-TO-DATE :Application:prepareComAndroidSupportSupportV42300Library UP-TO-DATE :Application:prepareComGithubLzyzsdCircleprogress110Library UP-TO-DATE :Application:prepareComGoogleAndroidGmsPlayServicesBase780Library UP-TO-DATE :Application:prepareComGoogleAndroidGmsPlayServicesLocation780Library UP-TO-DATE :Application:prepareComGoogleAndroidGmsPlayServicesMaps780Library UP-TO-DATE :Application:prepareComGoogleAndroidGmsPlayServicesNearby780Library UP-TO-DATE :Application:prepareComTheartofdevEdmodoAndroidImageCropper104Library UP-TO-DATE :Application:prepareComViewpagerindicatorLibrary241Library UP-TO-DATE :Application:prepareMeLeolinShortcutBadger1010Library UP-TO-DATE :Application:prepareNetDanlewAndroidJoda281Library UP-TO-DATE :Application:prepareReleaseDependencies :Application:compileReleaseAidl UP-TO-DATE :Application:compileReleaseRenderscript UP-TO-DATE :Application:generateReleaseBuildConfig UP-TO-DATE :Application:generateReleaseAssets UP-TO-DATE :Application:mergeReleaseAssets UP-TO-DATE :Application:generateReleaseResValues UP-TO-DATE :Application:generateReleaseResources UP-TO-DATE :Application:mergeReleaseResources UP-TO-DATE :Application:processReleaseManifest UP-TO-DATE :Application:processReleaseResources UP-TO-DATE :Application:generateReleaseSources UP-TO-DATE :Application:processReleaseJavaRes UP-TO-DATE :Application:compileReleaseJavaWithJavac UP-TO-DATE :Application:compileReleaseNdk UP-TO-DATE :Application:compileReleaseSources UP-TO-DATE :Application:lintVitalRelease :Application:proguardRelease UP-TO-DATE :Application:dexRelease UP-TO-DATE :Application:validateExternalOverrideSigning :Application:packageRelease FAILED Error:Execution failed for task ':Application:packageRelease'. > Unable to compute hash of C:\Users\rafal_000\Projekty\Application\build\intermediates\classes-proguard\release\classes.jar Information:BUILD FAILED Information:Total time: 6.694 secs Information:1 error Information:0 warnings Information:See complete output in console 

Related of "Android Studio,ProGuard无法计算Classes.jar的哈希值"

正如伊格林在他的评论中指出的那样; 我使用gradlew命令行实用程序来获取更详细的错误。 原来,有一个JAVA_HOMEvariables的问题。 解决了。