Android - 签名的 APK - Gradle 执行失败
Posted
技术标签:
【中文标题】Android - 签名的 APK - Gradle 执行失败【英文标题】:Android - Signed APK - Gradle execution failed 【发布时间】:2014-11-28 21:09:39 【问题描述】:我已经成功地为我的应用程序生成签名的 apk 并在我的团队中本地分发它。但是突然前两天我无法生成签名的apk。 当我将构建变量更改为“释放”时,gradle 调用完成,没有任何错误或警告。但是在创建签名 apk 时出现以下错误:
Information:Compilation completed with 1 error and 0 warnings in 11 sec
Information:1 error
Information:0 warnings
Error:Gradle: Execution failed for task ':module_name:proguardRelease'.
> java.io.IOException: Please correct the above warnings first.
build.gradle:
apply plugin: 'android'
android
compileSdkVersion 19
buildToolsVersion '19.1.0'
defaultConfig
minSdkVersion 17
targetSdkVersion 19
versionCode 1
versionName '1.0'
signingConfigs
release
storeFile file('release.keystore')
storePassword '*************'
keyAlias '*********'
keyPassword '**************'
buildTypes
release
runProguard true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
productFlavors
dependencies
compile fileTree(dir: 'libs', include: ['*.jar'])
compile files('libs/volley.jar')
compile files('libs/StarIOPort3.1.jar')
compile files('libs/logentries-android-2.1.2.jar')
compile 'com.android.support:appcompat-v7:19.1.0'
compile 'com.android.support:support-v4:19.1.0'
compile 'com.google.android.gms:play-services:+'
compile 'com.wrapp.floatlabelededittext:library:0.0.3'
在哪里可以看到警告? “消息”中没有警告。也在 gradle 控制台中。
这是什么原因造成的?我该如何解决这个问题?
【问题讨论】:
你的 gradle 文件是什么样的?您是使用 android studio 构建还是您的 ide 是什么?尝试在 build.gradle 文件中禁用 pro-guard。 我正在使用 Android Studio。为发布版本禁用 pro-guard 不是一个好主意。 禁用它也许不是最好的主意,但如果 progaurd 引起了问题,那么你会想知道。 尝试在项目根目录中运行gradlew build --stacktrace
cmd 行。
@Seth 禁用 pro-gaurd 有效。所以问题出在那个地方。?
【参考方案1】:
如果您使用 Windows,请打开 cmd 提示符,然后 cd
到项目的根目录。其中应该有gradlew.bat
(由Android Studio自动创建)。尝试运行 gradlew.bat clean assembleRelease -d
以查看 proguard 警告。
您需要fix these proguard warnings before it lets you do a successful build。您可以通过将 -dontwarn org.apache.*
(或与您的警告相关的类似内容)添加到项目 proguard 文件 release
部分来修复它们。
【讨论】:
Warning:Gradle: com/google/android/gms/gcm/GoogleCloudMessaging.class(com/google/android/gms/gcm:GoogleCloudMessaging.class): major version 51 is newer than 50, the highest major version supported by this compiler.
我该如何解决这个问题?
@Rani 请尝试使用 compile 'com.google.android.gms:play-services:5.0.+'以上是关于Android - 签名的 APK - Gradle 执行失败的主要内容,如果未能解决你的问题,请参考以下文章
Android apk签名详解——AS签名获取签名信息系统签名命令行签名