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!
答案 0 :(得分:2)
这看起来像是一个损坏的Android SDK - 错误的CRC表明其中一个文件中的某些位是错误的。尝试重新安装。