繁体   English   中英

无法从Android Studio生成签名的APK“任务':packageRelease'的执行失败”

[英]can't generate signed APK from Android studio “Execution failed for task ':packageRelease'”

我正在使用Android Studio 1.2.2,并尝试使用proguard设置生成APK。 但是我做不到,并收到以下错误消息。

“对于任务':packageRelease',执行失败。

无法计算/Users/Documents/projectX/app/build/intermediates/classes-proguard/release/classes.jar的哈希”

proguard设置非常简单。

-dontshrink
-dontoptimize
-dontusemixedcaseclassnames
-dontskipnonpubliclibraryclasses
-dontpreverify
-verbose

gradle文件在下面。

apply plugin: 'com.android.application'
apply plugin: 'com.google.gms.google-services'

android {
    compileSdkVersion "Google Inc.:Google APIs:22"
    buildToolsVersion "21.1.2"

    defaultConfig {
        applicationId "com.bientus.cirque.sansotong"
        minSdkVersion 15
        targetSdkVersion 22
        versionCode 1
        versionName "1.0"
//        multiDexEnabled true
    }
    buildTypes {
        debug {
            debuggable true
        }

        release {
            minifyEnabled true
            //proguardFiles 'proguard-project.txt', 'proguard.cfg'
            //proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-project.txt', 'proguard.cfg'
            proguardFiles 'proguard-project.txt'
        }
    }
}

dependencies {
        compile fileTree(dir: 'libs', include: ['*.jar'])
        compile 'com.android.support:appcompat-v7:22.0.0'
        compile "com.google.android.gms:play-services:7.5.0"
//    compile 'com.android.support:multidex:1.0.0'
}

buildscript {
    repositories {
//        mavenCentral()
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:1.2.3'
        classpath 'com.google.gms:google-services:1.3.0-beta1'
    }
}

有人可以提出任何想法或想法吗? 非常感谢你!

只需添加到项目的保护规则中:

-keep public class com.google.android.gms.**
-dontwarn com.google.android.gms.**

在“ proguard-project.txt”中设置关注对象后,它可以工作。 显然,应该为此文件设置gradle。

-dontwarn android.support.v7.**
-keep class android.support.v7.** { *; }
-keep interface android.support.v7.** { *; }

查看您的构建输出。 您可能在其中有proguard警告,例如,如果您有2个共享某个类的库(可能有不同的版本)。

这可能会阻止proguard计算哈希。

在构建中同时具有openIAB和opfIAB(都使用Amazon和google IAB)时,我遇到了相同的问题。 删除这些库之一解决了我的问题

好! 这很容易! 只需按照步骤操作:build.gradle:minifyEnabled false-> minifyEnabled true proguard-rules.pro:您必须添加您在项目中使用的第三个库,例如piccaso等。如果在android studio中执行此操作,它将拒绝文件。

-dontwarn android.support.**
-dontwarn com.github.**
-dontwarn com.squareup.picasso.**
-dontwarn com.etsy.android.grid.**

有用 :)

我也有这个问题,解决这个问题的最佳方法是:转到gradle控制台,看看哪里有警告,例如

警告:com.squareup.picasso.OkHttpDownloader:找不到引用的类com.squareup.okhttp.OkHttpClient

现在打开Proguard Rules文件并滚动到底部并添加以下行

-dontwarn com.squareup.okhttp.**

对于在gradle控制台上找到的任何缺少的类,基本上都添加以下行:

-dontwarn followed by class name 

希望这也适用于所有人。 祝好运!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM