Error:Execution failed for task ':app:proguardRelease' (invalid entry CRC)
Error:Execution failed for task ':app:proguardRelease' (invalid entry CRC)
Error:Execution failed for task ':app:proguardRelease'
还有很多其他问题,但我找不到任何关于 invalid entry CRC
的问题。
我正在从 Eclipse 迁移到 Android studio,我正试图弄清楚它是如何工作的,尤其是 Gradle。我导入了一个现有的 Android 项目。将 sdk 更新为 api 21 并在 File/Project 结构中设置 java 7 路径后,一切似乎都正常了。我可以 运行 我的应用程序并开始构建它。但是,当我执行 Gradle assembleRelease 或 Build/Generate 签名 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
我可以让它工作,但我想使用混淆器,而不是禁用它。
我猜这与旧文件名和新文件名不匹配有关,但我无法弄清楚它是什么。我正准备放弃并回到 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 Tools Only"。)我重命名了旧的 sdk 文件夹(而不是删除它)。当我打开 Android Studio 时,它询问 sdk 文件夹在哪里,所以我将它指向我刚刚下载的新文件夹。当 gradle 试图在启动时做它的事情时,它发现了其他缺少的组件(平台、构建工具、appcompat)所以我只是根据 gradle 给我的错误消息一个一个地安装它们.
我一边下载所有内容一边写这篇文章。让我们看看它现在是否有效……是的!它确实如此!谢谢@ScottBarta!
这看起来像是损坏的 Android SDK -- 错误的 CRC 表示其中一个文件中的某些位是错误的。尝试重新安装它。
Error:Execution failed for task ':app:proguardRelease'
还有很多其他问题,但我找不到任何关于 invalid entry CRC
的问题。
我正在从 Eclipse 迁移到 Android studio,我正试图弄清楚它是如何工作的,尤其是 Gradle。我导入了一个现有的 Android 项目。将 sdk 更新为 api 21 并在 File/Project 结构中设置 java 7 路径后,一切似乎都正常了。我可以 运行 我的应用程序并开始构建它。但是,当我执行 Gradle assembleRelease 或 Build/Generate 签名 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
我可以让它工作,但我想使用混淆器,而不是禁用它。
我猜这与旧文件名和新文件名不匹配有关,但我无法弄清楚它是什么。我正准备放弃并回到 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 Tools Only"。)我重命名了旧的 sdk 文件夹(而不是删除它)。当我打开 Android Studio 时,它询问 sdk 文件夹在哪里,所以我将它指向我刚刚下载的新文件夹。当 gradle 试图在启动时做它的事情时,它发现了其他缺少的组件(平台、构建工具、appcompat)所以我只是根据 gradle 给我的错误消息一个一个地安装它们.
我一边下载所有内容一边写这篇文章。让我们看看它现在是否有效……是的!它确实如此!谢谢@ScottBarta!
这看起来像是损坏的 Android SDK -- 错误的 CRC 表示其中一个文件中的某些位是错误的。尝试重新安装它。