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

jul*_*jul 51 proguard android-studio

我正在尝试在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.
Run Code Online (Sandbox Code Playgroud)

该应用程序在调试模式下编译和运行完美,而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'
}
Run Code Online (Sandbox Code Playgroud)

错误是

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'.
Run Code Online (Sandbox Code Playgroud)

hoi*_*hoi 63

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

-dontwarn okio.**
Run Code Online (Sandbox Code Playgroud)

  • @ septemberboy7放入proguard设置文件,如'proguard-rules.pro' (2认同)
  • @hoi要求用一些详细信息解释答案.为什么这个陈述是必需的,有什么用呢? (2认同)

jul*_*jul 19

我不得不禁用proguard

minifyEnabled false
Run Code Online (Sandbox Code Playgroud)

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

  • 请注意使用minifyEnabled false,它将禁用保护您的应用程序并减少apk大小. (7认同)
  • 如果你将minifyEnabled设置为false,proguard将不会阻止你的代码!通常,您必须在发布模式下将其设置为true. (3认同)

Vas*_*hev 7

我对Gradle 1.1.0也有同样的问题.它记得我移动过的一些旧的类引用,我无法构建apk.

尝试构建 > 清洁.

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


Hoj*_*hri 5

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

-ignorewarnings 
Run Code Online (Sandbox Code Playgroud)