[英]Can't generate signed apk from Android Studio “Execution failed for task ':packageRelease'” when using JodaTime in some classes
[英]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.