错误:任务':app:proguardRelease'执行失败(无效输入CRC)

时间:2015-01-20 14:19:21

标签: android eclipse gradle android-studio

Error:Execution failed for task ':app:proguardRelease'还有很多其他问题,但我找不到任何有关invalid entry CRC怎么办的问题。

我正在从Eclipse迁移到Android工作室,我正在试图弄清楚它是如何工作的,尤其是Gradle。我导入了一个现有的Android项目。在将sdk更新为api 21并在文件/项目结构中设置java 7路径之后,事情似乎正在起作用。我可以运行我的应用程序并让它构建。但是,当我执行Gradle assembleRelease或Build / Generate Signed APK时,我收到以下错误:

Error:Execution failed for task ':app:proguardRelease'.
> java.io.IOException: Can't read [/home/me/adt-bundle/sdk/platforms/android-21/android.jar] (invalid entry CRC (expected 0x51d86068 but got 0xe44d416b))

这是我的gradle文件:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 21
    buildToolsVersion "21.1.2"

    defaultConfig {
        applicationId "com.example.myapp"
        minSdkVersion 8
        targetSdkVersion 21
    }

    buildTypes {
        release {
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-project.txt'
        }
    }
}

dependencies {
    compile 'com.android.support:support-v4:21.0.3'
}

如果我设置minifyEnabled false但是我想使用proguard而不是禁用它,我可以让它工作。

我猜这与旧文件名和新文件名之间的不匹配有关,但我无法弄清楚它是什么。我即将放弃并回到Eclipse,但我想我会先问这里。感谢。

线索但不是解决方案(对我来说):

更新

不仅仅是从Eclipse导入的文件不起作用。即使在Android Studio中启动新项目也无效。

按照@ ScottBarta的建议,我从here重新下载了sdk。 (由于我已经安装了Android Studio,我刚刚下载了页面底部的“仅SDK工具”。)我重命名了旧的sdk文件夹(而不是删除它)。当我打开Android Studio时,它询问了sdk文件夹的位置,所以我将其指向刚刚下载的新文件夹。当gradle在启动时尝试做它的事情时,它发现了其他缺少的组件(平台,构建工具,appcompat),所以我只是根据gradle给我的错误消息逐个安装它们。

当我下载所有内容时,我正在写这篇文章。让我们看看它现在是否有效......是的!它做了!!!谢谢@ScottBarta!

1 个答案:

答案 0 :(得分:2)

这看起来像是一个损坏的Android SDK - 错误的CRC表明其中一个文件中的某些位是错误的。尝试重新安装。