Proguard和Apache的遗产 [英] Proguard and apache legacy

查看:214
本文介绍了Proguard和Apache的遗产的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我使用 Android API 23 org.apache.http.legacy ,所以我可以使用排球。除了当我使用 proguard 时,所有东西都可以使用。我得到这个错误:

lockquote

错误:任务':app:packageDevRelease'的执行失败。无法
计算
的散列值... app / build / intermediates / classes-proguard / dev / release / classes.jar

我的gradle文件:

  apply plugin:'com.android.application'
apply plugin :'io.fabric'
申请插件:'com.jakewharton.hugo'

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

buildscript {
repositories {
mavenCentral()
maven {url'https://maven.fabric.io/public'}
}

依赖关系{
classpath'com.jakewharton.hugo:hugo-plugin:1.2.1'
classpath'io.fabric.tools:gradle:1 。+'
}
}

android {
compileSdkVersion 23
buildToolsVersion23.0.2

defaultConfig {
applicationId...
minSdkVersion 16
targetSdkVersion 23
versionCode 3
versionName1.0 .0


compileOptions {
sourceCompatibility JavaVersion.VERSION_1_7
targetCompatibility JavaVersion.VERSION_1_7
}

packagingOptions {
排除'META-INF / DEPENDENCIES.txt'
排除'META-INF / LICENSE.txt'
排除'META-INF / NOTICE.txt'
排除'META-INF / NOTICE'
排除'META-INF / LICENSE'
排除'META-INF / DEPENDENCIES'
排除'META-INF / services / javax.annotation.processing.Processor'


lintOptions {
abortOnError false
disable'InvalidPackage'
}

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

sourceSets {
...
}

productFla vors {
...
}
}

依赖关系{
编译文件('libs / org.apache.http.legacy.jar')

// ####子模块
编译项目(':submodules:volley')

编译'com.android.support:appcompat-v7:23.2 .0'
compile'c​​om.android.support:design:23.2.0'
compile'c​​om.android.support:percent:23.2.0'
compile'c​​om.android.support :recyclerview-v7:23.2.0'

compile'c​​om.google.android.gms:play-services-location:8.4.0'
compile'c​​om.google.android.gms :play-services-maps:8.4.0'
compile'c​​om.google.maps.android:android-maps-utils:0.4'
compile'c​​om.google.code.gson:gson:2.3 '

compile'c​​om.facebook.android:facebook-android-sdk:4.7.0'

compile'c​​om.squareup.picasso:picasso:2.5.2'
编译'com.squareup.okhttp:okhttp:2.4.0'
编译'com.squareup.okhttp:okhttp-urlconnection:2。 4.0'

compilecom.daimajia.swipelayout:library:1.2.0@aar
compile'c​​om.kbeanie:image-chooser-library:1.5.2@aar'
compile'c​​om.mcxiaoke.viewpagerindicator:library:2.4.1@aar'

compile('com.crashlytics.sdk.android:crashlytics:2.5.5@aar'){
transitive = true;


编辑:



将此行添加到 proguard post

  -dontwarn org.apache.http。** 
-dontwarn android.net.http.AndroidHttpClient
-dontwarn com.google.android.gms。**
-dontwarn com.android.volley.toolbox。**

我得到同样的错误,但现在有一些友好的输出:


在BaseClient.java的lint分析过程中意外失败(这是lint中的
错误或它依赖的库之一)
TypeSystem.getUnannotatedType(TypeSystem.java:180) - > TypeSystem.getParameterizedType(TypeSystem.java:238) - > TypeSystem.getParameterizedType(TypeSystem.java:261) - > LookupEnvironment.createParameterizedType(LookupEnvironment.java:949):app:validateExternalOverrideSigning:app:packageDevRelease FAILED


我的BaseClient.java有这样的一些方法:

  public static< T extends Object,U扩展对象> void executePostRequest(
String url,
T requestPayload,
Class< U> responseClass,
Response.Listener< U> successListener,
Response.ErrorListener errorListener){}

 私人静态< T> BaseRequest.AuthRetryListener< T> createAuthRequestListener()

etc ...

我如何做这项工作?

谢谢。



编辑2:

用户 ajcpsoares -ignorewarnings 解决方案。我将离开ProGuard疑难解答文档的链接。此外,因为在我看来这是一个解决方法,而不是一个解决方案,我会离开这里的Android开源项目 - 问题跟踪器 = 202750rel =nofollow> link ,那么 > -ignorewarnings 会在 proguard 文件中成功建立吗?


I'm using Android API 23 and org.apache.http.legacy so I can use Volley. Everything works except when I use proguard. I'm getting this error:

Error:Execution failed for task ':app:packageDevRelease'. Unable to compute hash of ...app/build/intermediates/classes-proguard/dev/release/classes.jar

My gradle file:

apply plugin: 'com.android.application'
apply plugin: 'io.fabric'
apply plugin: 'com.jakewharton.hugo'

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

buildscript {
    repositories {
        mavenCentral()
        maven { url 'https://maven.fabric.io/public' }
    }

    dependencies {
        classpath 'com.jakewharton.hugo:hugo-plugin:1.2.1'
        classpath 'io.fabric.tools:gradle:1.+'
    }
}

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.2"

    defaultConfig {
        applicationId "..."
        minSdkVersion 16
        targetSdkVersion 23
        versionCode 3
        versionName "1.0.0"
    }

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_7
        targetCompatibility JavaVersion.VERSION_1_7
    }

    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/services/javax.annotation.processing.Processor'
    }

    lintOptions {
        abortOnError false
        disable 'InvalidPackage'
    }

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

    sourceSets {
        ...
    }

    productFlavors {
        ...
    }
}

dependencies {
    compile files('libs/org.apache.http.legacy.jar')

    // #### Submodules
    compile project(':submodules:volley')

    compile 'com.android.support:appcompat-v7:23.2.0'
    compile 'com.android.support:design:23.2.0'
    compile 'com.android.support:percent:23.2.0'
    compile 'com.android.support:recyclerview-v7:23.2.0'

    compile 'com.google.android.gms:play-services-location:8.4.0'
    compile 'com.google.android.gms:play-services-maps:8.4.0'
    compile 'com.google.maps.android:android-maps-utils:0.4'
    compile 'com.google.code.gson:gson:2.3'

    compile 'com.facebook.android:facebook-android-sdk:4.7.0'

    compile 'com.squareup.picasso:picasso:2.5.2'
    compile 'com.squareup.okhttp:okhttp:2.4.0'
    compile 'com.squareup.okhttp:okhttp-urlconnection:2.4.0'

    compile "com.daimajia.swipelayout:library:1.2.0@aar"
    compile 'com.kbeanie:image-chooser-library:1.5.2@aar'
    compile 'com.mcxiaoke.viewpagerindicator:library:2.4.1@aar'

    compile('com.crashlytics.sdk.android:crashlytics:2.5.5@aar') {
        transitive = true;
    }
}

EDIT:

Added this lines to proguard has mentioned in this post:

-dontwarn org.apache.http.**
-dontwarn android.net.http.AndroidHttpClient
-dontwarn com.google.android.gms.**
-dontwarn com.android.volley.toolbox.**

I get the same error but now with some friendly output:

Unexpected failure during lint analysis of BaseClient.java (this is a bug in lint or one of the libraries it depends on) TypeSystem.getUnannotatedType(TypeSystem.java:180)->TypeSystem.getParameterizedType(TypeSystem.java:238)->TypeSystem.getParameterizedType(TypeSystem.java:261)->LookupEnvironment.createParameterizedType(LookupEnvironment.java:949) :app:validateExternalOverrideSigning :app:packageDevRelease FAILED

My BaseClient.java has some methods like this:

 public static <T extends Object, U extends Object> void executePostRequest(
               String url, 
               T requestPayload,
               Class<U> responseClass,
               Response.Listener<U> successListener,
               Response.ErrorListener errorListener){}

and

private static <T> BaseRequest.AuthRetryListener<T> createAuthRequestListener()

etc...

How can I make this work?
Thanks.

EDIT 2:
User ajcpsoares -ignorewarnings solution works. I'll leave this link from ProGuard Troubleshooting docs. Also, since in my opinion this is a workaround instead of a solution I'll leave here the Android Open Source Project - Issue Tracker link too.

解决方案

If you add -ignorewarnings in your proguard file will it build successfully?

这篇关于Proguard和Apache的遗产的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆