Generate Signed APK: Errors while building APK Android Studio

78,937

Solution 1

You are getting

Removed unused resources: Binary resource data reduced from 741KB to 402KB: Removed 45%
Note: If necessary, you can disable resource shrinking by adding
android {
    buildTypes {
        release {
            shrinkResources false
        }
    }
}
:app:validateExternalOverrideSigning
:app:packageRelease FAILED
Error:Execution failed for task ':app:packageRelease'.

Resource shrinking works only in conjunction with code shrinking.

minifyEnabled is an Android tool that will decrease the size of your application when you go to build it .

android {

    buildTypes {
        release {
            shrinkResources true // This must be first 
            minifyEnabled true   // This must be after shrinkResources 
            proguardFiles getDefaultProguardFile('proguard-android.txt'),
                    'proguard-rules.pro'
        }
    }
}

If you haven't already built your app using minifyEnabled for code shrinking, then try that before enabling shrinkResources, because you might need to edit your proguard-rules.pro file to keep classes or methods that are created or invoked dynamically before you start removing resources.

Please read official Guideline about Shrink Your Code and Resources

Advice

Use latest version

compileSdkVersion 25
buildToolsVersion '25.0.1'
targetSdkVersion 25
compile 'com.android.support:appcompat-v7:25.1.0' // set other 25.1.0

NOTE

YouTubeRecyclerViewFragment.java uses or overrides a deprecated API.

Use Alternate Latest Version .

Solution 2

First check whether you really need to use shrinkResources

If so, do as suggested in developers link https://developer.android.com/studio/build/shrink-code.html#shrink-resources mentioned above by IntelliJ Amiya, you have to use like below

android {

    buildTypes {
        release {
            shrinkResources true  // -- always add this above minifyEnabled --
            minifyEnabled true   
            proguardFiles getDefaultProguardFile('proguard-android.txt'),
                    'proguard-rules.pro'
        }
    }
}

Solution 3

Try to generate signed APK using terminal by gradle command see your stack trace that will give you detailed log where has the problem.

In Windows

$gradle clean

$  gradle --stacktrace assembleRelease

In Ubuntu

$./gradlew clean

$./gradlew --stacktrace assembleRelease 

if you have still problem post you stack trace here

Solution 4

Clean project and start again generate signed Build/Apk. its working fine for me.

Share:
78,937
Sophie
Author by

Sophie

Updated on July 22, 2022

Comments

  • Sophie
    Sophie almost 2 years

    I am unable to generate Signed APK using minifyEnabled true and shrinkResources true

    App Level : build.gradle

    buildscript {
        repositories {
            mavenCentral()
        }
        dependencies {
            classpath 'com.android.tools.build:gradle:2.1.0'
        }
    }
    apply plugin: 'com.android.application'
    
    repositories {
        mavenCentral()
    }
    
    android {
        compileSdkVersion 23
        buildToolsVersion '22.0.1'
    
        defaultConfig {
            applicationId "......."
            minSdkVersion 14
            targetSdkVersion 21
            versionCode 1
            versionName "1.0"
            testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
        }
        buildTypes {
            debug {
                minifyEnabled true
                shrinkResources true
                proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            }
    
            release {
                minifyEnabled true
                shrinkResources true
                proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            }
        }
    
        configurations {
            compile.exclude group: "org.apache.httpcomponents", module: "httpclient"
        }
    }
    
    dependencies {
        compile 'com.android.support:design:23.0.1'
        compile 'com.android.support:cardview-v7:23.0.1'
        compile 'com.android.support:recyclerview-v7:23.0.1'
        compile 'com.android.support:appcompat-v7:23.0.1'
        compile 'com.squareup.picasso:picasso:2.5.2'
        compile 'com.google.apis:google-api-services-youtube:v3-rev149-1.20.0'
        compile 'com.google.http-client:google-http-client-android:1.20.0'
        compile 'com.google.api-client:google-api-client-android:1.20.0'
        compile 'com.google.api-client:google-api-client-gson:1.20.0'
        compile files('libs/YouTubeAndroidPlayerApi.jar')
        compile 'com.github.clans:fab:1.6.2'
    }
    

    MessageView

    Information:Gradle tasks [:app:assembleRelease]
    :app:preBuild UP-TO-DATE
    :app:preReleaseBuild UP-TO-DATE
    :app:checkReleaseManifest
    :app:preDebugBuild UP-TO-DATE
    :app:prepareComAndroidSupportAppcompatV72301Library UP-TO-DATE
    :app:prepareComAndroidSupportCardviewV72301Library UP-TO-DATE
    :app:prepareComAndroidSupportDesign2301Library UP-TO-DATE
    :app:prepareComAndroidSupportRecyclerviewV72301Library UP-TO-DATE
    :app:prepareComAndroidSupportSupportV42301Library UP-TO-DATE
    :app:prepareComGithubClansFab162Library 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
    :app:processReleaseJavaRes UP-TO-DATE
    :app:compileReleaseJavaWithJavac
    Note: .....YouTubeRecyclerViewFragment.java uses or overrides a deprecated API.
    Note: Recompile with -Xlint:deprecation for details.
    Note: ....GetPlaylistAsyncTask.java uses unchecked or unsafe operations.
    Note: Recompile with -Xlint:unchecked for details.
    :app:compileReleaseNdk UP-TO-DATE
    :app:compileReleaseSources
    :app:proguardRelease UP-TO-DATE
    :app:dexRelease
    :app:shrinkReleaseResources
    Removed unused resources: Binary resource data reduced from 741KB to 402KB: Removed 45%
    Note: If necessary, you can disable resource shrinking by adding
    android {
        buildTypes {
            release {
                shrinkResources false
            }
        }
    }
    :app:validateExternalOverrideSigning
    :app:packageRelease FAILED
    Error:Execution failed for task ':app:packageRelease'.
    > Unable to compute hash of ....\app\build\intermediates\classes-proguard\release\classes.jar
    Information:BUILD FAILED
    Information:Total time: 7.45 secs
    Information:1 error
    Information:0 warnings
    Information:See complete output in console