签名应用程序期间库中的警告

时间:2015-07-29 14:11:13

标签: android android-gradle proguard

enter image description here

 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'

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


    android {
        compileSdkVersion 22
        buildToolsVersion "22.0.1"

        defaultConfig {
            applicationId "com.example.hello"
            minSdkVersion 9
            targetSdkVersion 21
            compileOptions {
                sourceCompatibility JavaVersion.VERSION_1_7
                targetCompatibility JavaVersion.VERSION_1_7
            }
        }

        buildTypes {
            release {
                minifyEnabled true
                proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            }
        }
    }

    dependencies {
        compile 'com.android.support:support-v4:22.2.0'
        compile 'com.google.code.gson:gson:2.2.4'
        compile 'com.android.support:appcompat-v7:22.2.0'
        compile 'com.google.android.gms:play-services:+'
        compile files('libs/bolts-android-1.2.0.jar')
        compile files('libs/facebook.jar')
        compile 'de.hdodenhof:circleimageview:1.2.1'
        compile 'com.android.support:recyclerview-v7:21.0.+'
        compile 'com.squareup.picasso:picasso:2.5.2'
        compile 'com.jakewharton:butterknife:6.1.0'
        compile 'com.android.support:cardview-v7:21.0.+'
        compile 'com.github.bumptech.glide:glide:3.5.2'
        compile 'com.android.support:support-v4:22.0.0'
        compile('com.crashlytics.sdk.android:crashlytics:2.4.0@aar') {
            transitive = true;
        }
        compile 'com.nhaarman.listviewanimations:lib-core:3.1.0@aar'
        compile project(':gcmv')
        compile 'com.android.support:design:22.2.0'
    }

今天当我用proguard签署我的应用程序时,它在我的库中显示了太多警告。 因为警告我无法生成我签名的apk文件。 那么有没有办法在我的gradle文件中使用“dontwarn”。

2 个答案:

答案 0 :(得分:3)

您似乎正在使用毕加索库。

尝试在proguard文件中添加此行。 (您的应用模块中的proguard-rules.pro

-dontwarn com.squareup.okhttp.**

答案 1 :(得分:2)

根据ProGuard documentation

  

标准的Android构建过程会自动指定输入   罐子给你。不幸的是,许多预编译的第三方库   引用其他未实际使用的库,因此不是   当下。这在调试版本中工作正常,但在发布版本中,   ProGuard期望所有库,因此它可以执行适当的静态   分析。例如,如果ProGuard抱怨它无法找到   java.awt类,然后是你正在使用的一些库   java.awt中。这有点阴暗,因为Android没有这个包   在任何情况下,如果您的应用程序仍然有效,您可以让ProGuard   例如,用“-dontwarn java.awt。**”接受它。

如上所述,如果它在调试中运行良好,您可以使用-dontwarn作为类过滤器:

  

指定不警告未解析的引用和其他重要的引用   问题都没有。可选过滤器是正则表达式; ProGuard的   不会打印有关匹配名称的类的警告。忽略   警告可能很危险。例如,如果未解决的类或   类成员确实需要处理,处理过的代码   将无法正常运作。