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签名获取签名信息系统签名命令行签名

Android开发对apk文件进行签名

Android:如何仅通过 Gradle 生成签名 APK? [复制]

android apk重新[签名]

Android Studio 之签名

Android 签名的 APK 崩溃