Error:Execution failed for task ':app:proguardRelease'
还有很多其他问题但我找不到任何告诉如何处理 invalid entry CRC
的内容.
我正在从 Eclipse 迁移到 Android studio,我正在尝试弄清楚它是如何工作的,尤其是 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,但我想我应该先在这里问。谢谢。
线索但不是解决方案(对我来说):
- getDefaultProguardFile is unrecognized by Gradle file symbol resolver
- https://code.google.com/p/android/issues/detail?id=72400
- Android Studio - ProGuard "java.io.IOException ...bin\classes (No such file or directory)"
- What is CRC? And how does it help in error detection?
更新
不仅仅是从 Eclipse 导入的文件不起作用。即使在 Android Studio 中启动一个新项目也不起作用。
按照@ScottBarta的建议,我从here重新下载了sdk。 。 (因为我已经安装了 Android Studio,所以我只是下载了页面底部的“仅 SDK 工具”。)我重命名了旧的 sdk 文件夹(而不是删除它)。当我打开 Android Studio 时,它询问 sdk 文件夹在哪里,所以我将其指向我刚刚下载的新文件夹。当 gradle 尝试在启动时执行它的操作时,它发现其他缺少的组件(平台、构建工具、appcompat),所以我只是根据 gradle 给我的错误消息一一安装它们。
我在下载所有内容时写下这篇文章。让我们看看它现在是否有效……是的!确实如此!!!谢谢你,@ScottBarta!
最佳答案
这看起来像是一个损坏的 Android SDK——错误的 CRC 表明其中一个文件中的某些位是错误的。尝试重新安装它。
关于android - 错误:Execution failed for task ':app:proguardRelease' (invalid entry CRC),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28047611/