android - 任务 ':app:transformClassesAndResourcesWithProguardForRelease'的执行失败:java.io.IOException-Proguard问题

标签 android android-studio gradle proguard ioexception

在尝试使用proguard时,一直在努力找出问题背后的原因(请参阅下面的stacktrace)。

除了gradle文件中提到的库外,该应用程序还处理打开socketsserializing/deserializing数据,ciphersjwt tokens,处理WifiManagerWifiP2pManager

如果有人可以帮助指出问题,或者至少帮助我更好地研究问题,那将是很好的。我尝试为不同的库添加所有可能的proguard规则,并且也不要最小化我们自己的父包。

我的gradle文件

buildscript {

    repositories {
        maven { url 'https://maven.fabric.io/public' }
    }

    dependencies {
        classpath 'io.fabric.tools:gradle:1.+'
    }
}

apply plugin: 'com.android.application' 

apply plugin: 'io.fabric'

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

repositories {

    maven { url 'https://maven.fabric.io/public' }

}    

dependencies {

    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile('com.crashlytics.sdk.android:crashlytics:2.5.5@aar') {
        transitive = true;
    }

    compile project(':android')
    compile 'com.android.support:appcompat-v7:23.1.1'
    compile 'com.squareup.retrofit:retrofit:1.9.0'
    compile 'com.squareup.okhttp:okhttp:2.5.0'
    compile 'com.google.code.gson:gson:2.4'
    compile 'commons-codec:commons-codec:1.9'
    compile 'com.android.support:design:23.1.1'
    compile 'com.google.android.gms:play-services-analytics:8.3.0'
    compile 'com.android.support:support-v4:23.1.1'

}

android {

    compileSdkVersion 23
    buildToolsVersion "23.0.2"

    defaultConfig {
        applicationId "com.some.org.package"
        minSdkVersion 18
        targetSdkVersion 23
        versionCode 5
        versionName "0.9.0"
    }
    buildTypes {
        release {
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }

    packagingOptions {
        exclude 'META-INF/DEPENDENCIES.txt'
        exclude 'META-INF/LICENSE.txt'
        exclude 'META-INF/NOTICE.txt'
        exclude 'META-INF/NOTICE'
        exclude 'META-INF/LICENSE'
        exclude 'META-INF/DEPENDENCIES'
        exclude 'META-INF/notice.txt'
        exclude 'META-INF/license.txt'
        exclude 'META-INF/dependencies.txt'
        exclude 'META-INF/LGPL2.1'
    }
}

Proguard-rules.pro

Proguard file link

./gradlew clean assembleRelease -d --stacktrace

https://jsfiddle.net/w7htgrxd/3

最佳答案

生成日志明确提到了生成失败的原因。关于丢失类,错误配置,尽管被使用但仍未保留的属性有各种引用,.....

我建议您查看引用的手册页并应用建议的更改,其中大多数是-keepattributes ....-dontwarn ...

如果您无法解决所有警告,则可以最终还添加-ignorewarnings来忽略其余警告,并让ProGuard继续处理您的应用程序。

关于android - 任务 ':app:transformClassesAndResourcesWithProguardForRelease'的执行失败:java.io.IOException-Proguard问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35813126/

相关文章:

javascript - 允许用手指缩放谷歌地图 - PhoneGap for Android

java - Android Studio-admob构建失败

java - android studio ExpandableListAdapter 上下文错误

android - 模拟器:模拟器:警告:无法连接到 proxy at::1:8080:未知错误! - 安卓

gradle - Gradle自定义插件:如何使用预期在构建脚本中设置的属性配置Gradle任务

gradle - gradle:如何在运行时定义多个包含调用ant.javac?

android - 将 snackbar 放在 Utility 类中

android - 如何将图像添加到 android studio 中的空白 Activity ?

android - 使用两个项目的ClassNotFoundException

java - setText 仅打印资源 ID,但不打印实际文本