在Android Studio中使用assembleRelease编译apk时proguardRelease失败

时间:2014-12-18 13:30:52

标签: android-studio proguard

我正在尝试将我的应用程序编译为Android Studio 1.0.1中的assembleRelease,并收到以下消息:

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:proguardRelease'.
> java.io.IOException: Please correct the above warnings first.

该应用程序在调试模式下编译并运行完美,而assembleRelease与Android Studio 0.8一起使用。

proguard-rules.pro文件为空。 build.gradle文件和完整错误如下所示。

有人可以帮忙吗?

的build.gradle

apply plugin: 'com.android.application'

android {
    compileSdkVersion 19
    buildToolsVersion '19.1'

    defaultConfig {
        applicationId "com.xxx.xxx"
        minSdkVersion 15
        targetSdkVersion 19
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }

    lintOptions {
        abortOnError false
        absolutePaths false
        lintConfig file("lint.xml")
    }
}

repositories {
    mavenCentral()
    flatDir {
        dirs 'aars'
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.urbanairship:urbanairship-lib:+@aar'
    compile 'com.google.android.gms:play-services:6.1.+'
    compile 'me.grantland:autofittextview:0.1.1@aar'
    compile 'com.google.code.gson:gson:2.2.+'
    compile 'net.danlew:android.joda:2.3.4@aar'
    compile 'com.android.support:support-v4:21.0.0'
    compile 'com.android.support:support-v13:21.0.0'
    compile 'com.squareup.okio:okio:1.0.0@jar'
    compile 'net.danlew:android.joda:2.4.0'
    compile 'de.greenrobot:eventbus:2.2.1'
    compile 'se.emilsjolander:stickylistheaders:2.5.0'
    compile 'se.emilsjolander:StickyScrollViewItems:1.1.0'
    compile 'com.nostra13.universalimageloader:universal-image-loader:1.9.3'
    compile 'com.sothree.slidinguppanel:library:2.0.2'
    compile 'com.squareup.okhttp:okhttp:2.1.0'
    compile 'com.squareup.picasso:picasso:2.4.0'
    compile 'com.squareup.okhttp:okhttp-urlconnection:2.1.0'
    compile 'de.greenrobot:eventbus:2.4.0'
}

错误是

13:40:19: Executing external task 'assembleRelease'...
:app:preBuild
:app:preReleaseBuild
:app:checkReleaseManifest
:app:preDebugBuild
:app:prepareComAndroidSupportSupportV132100Library UP-TO-DATE
:app:prepareComAndroidSupportSupportV42100Library UP-TO-DATE
:app:prepareComGoogleAndroidGmsPlayServices6171Library UP-TO-DATE
:app:prepareComSothreeSlidinguppanelLibrary202Library UP-TO-DATE
:app:prepareComUrbanairshipUrbanairshipLib510Library UP-TO-DATE
:app:prepareMeGrantlandAutofittextview011Library UP-TO-DATE
:app:prepareNetDanlewAndroidJoda240Library UP-TO-DATE
:app:prepareSeEmilsjolanderStickyScrollViewItems110Library UP-TO-DATE
:app:prepareSeEmilsjolanderStickylistheaders250Library UP-TO-DATE
:app:prepareReleaseDependencies
:app:compileReleaseAidl
:app:compileReleaseRenderscript
:app:generateReleaseBuildConfig
:app:generateReleaseAssets UP-TO-DATE
:app:mergeReleaseAssets
:app:generateReleaseResValues UP-TO-DATE
:app:generateReleaseResources
:app:mergeReleaseResources
:app:processReleaseManifest
:app:processReleaseResources
:app:generateReleaseSources
Note: <path_to_my_project>/app/src/main/java/com/xxx/xxx/fragments/MatchCenterFragment.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
:app:compileReleaseJava
:app:lintVitalRelease
:app:compileReleaseNdk
:app:proguardRelease
Warning: com.ooyala.android.player.WidevineLibPlayer: can't find superclass or interface com.widevine.drmapi.android.WVEventListener
( more com.ooyala.* warnings )
Warning: com.squareup.okhttp.internal.huc.HttpsURLConnectionImpl: can't find referenced method 'long getContentLengthLong()' in program class com.squareup.okhttp.internal.huc.HttpURLConnectionImpl
Warning: com.squareup.okhttp.internal.huc.HttpsURLConnectionImpl: can't find referenced method 'long getHeaderFieldLong(java.lang.String,long)' in program class com.squareup.okhttp.internal.huc.HttpURLConnectionImpl
Warning: com.squareup.okhttp.internal.huc.JavaApiConverter$CacheHttpsURLConnection: can't find referenced method 'long getContentLengthLong()' in program class com.squareup.okhttp.internal.huc.JavaApiConverter$CacheHttpURLConnection
Warning: com.squareup.okhttp.internal.huc.JavaApiConverter$CacheHttpsURLConnection: can't find referenced method 'long getHeaderFieldLong(java.lang.String,long)' in program class com.squareup.okhttp.internal.huc.JavaApiConverter$CacheHttpURLConnection
Warning: okio.DeflaterSink: can't find referenced class org.codehaus.mojo.animal_sniffer.IgnoreJRERequirement
Warning: okio.Okio: can't find referenced class java.nio.file.Files
Warning: okio.Okio: can't find referenced class java.nio.file.Files
Warning: okio.Okio: can't find referenced class java.nio.file.Files
Warning: okio.Okio: can't find referenced class java.nio.file.Path
Warning: okio.Okio: can't find referenced class java.nio.file.OpenOption
Warning: okio.Okio: can't find referenced class java.nio.file.Path
Warning: okio.Okio: can't find referenced class java.nio.file.OpenOption
Warning: okio.Okio: can't find referenced class org.codehaus.mojo.animal_sniffer.IgnoreJRERequirement
Warning: okio.Okio: can't find referenced class java.nio.file.Path
Warning: okio.Okio: can't find referenced class java.nio.file.OpenOption
Warning: okio.Okio: can't find referenced class java.nio.file.Path
Warning: okio.Okio: can't find referenced class java.nio.file.OpenOption
Warning: okio.Okio: can't find referenced class org.codehaus.mojo.animal_sniffer.IgnoreJRERequirement
Warning: there were 234 unresolved references to classes or interfaces.
         You may need to add missing library jars or update their versions.
         If your code works fine without the missing classes, you can suppress
         the warnings with '-dontwarn' options.
         (http://proguard.sourceforge.net/manual/troubleshooting.html#unresolvedclass)
Warning: there were 4 unresolved references to program class members.
         Your input classes appear to be inconsistent.
         You may need to recompile the code.
         (http://proguard.sourceforge.net/manual/troubleshooting.html#unresolvedprogramclassmember)
:app:proguardRelease FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:proguardRelease'.
> java.io.IOException: Please correct the above warnings first.

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

BUILD FAILED

Total time: 14.674 secs
Please correct the above warnings first.
13:40:35: External task execution finished 'assembleRelease'.

5 个答案:

答案 0 :(得分:61)

将此添加到ProGuard设置文件(如proguard-rules.pro)

-dontwarn okio.**

答案 1 :(得分:19)

我不得不用

禁用proguard
minifyEnabled false

不是最好的解决方案,但它确实有效。

答案 2 :(得分:7)

Gradle 1.1.0遇到了同样的问题。它记得我移动过的一些旧的类引用,我无法构建apk。

尝试构建&gt;的清洁

它帮助了我,现在我可以再次构建apk。

答案 3 :(得分:3)

将此添加到ProGuard设置文件(如proguard-rules.pro)

-ignorewarnings 

答案 4 :(得分:1)

我认为你已经解决了你的问题。无论如何,请看这个链接:https://stackoverflow.com/a/29858070/3864698

此修复程序计划用于Gradle Plugin 1.4版。所以我们必须等一下。