【问题标题】:Execution failed for task ':app:transformClassesAndResourcesWithProguardForRelease' : java.io.IOException - Proguard Issue任务 ':app:transformClassesAndResourcesWithProguardForRelease' 执行失败:java.io.IOException - Proguard 问题
【发布时间】:2016-03-05 10:45:35
【问题描述】:

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

除了 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

【问题讨论】:

    标签: android android-studio gradle proguard ioexception


    【解决方案1】:

    构建日志明确提及构建失败的原因。有各种引用缺失的类、错误的配置、虽然被使用却没有保留的属性,......

    我建议您查看参考的手册页并应用建议的更改,其中大部分是 -keepattributes ....-dontwarn ...

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

    【讨论】:

      猜你喜欢
      • 2017-05-12
      • 1970-01-01
      • 1970-01-01
      • 2016-06-27
      • 2020-05-21
      • 1970-01-01
      • 2016-10-24
      • 2019-09-29
      • 2019-01-30
      相关资源
      最近更新 更多