Generate Signed APK: Errors while building APK Android Studio

后端 未结 9 1954
无人共我
无人共我 2021-02-12 22:20

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

App Level : build.gradle

buildscript {
            


        
相关标签:
9条回答
  • 2021-02-12 22:26

    Use Keytool binary or exe to generate a private keystore. Instructions in below link. You can then sign your app using this keystore. Keytool gets installed when you install Java.

    http://docs.oracle.com/cd/E19509-01/820-3503/ggfen/index.html

    0 讨论(0)
  • 2021-02-12 22:28

    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 .

    0 讨论(0)
  • 2021-02-12 22:29

    R.raw.Keep (xml file)

    <?xml version="1.0" encoding="utf-8"?>
    <resources xmlns:tools="http://schemas.android.com/tools"
        tools:shrinkMode="strict" />
    

    Dont forget to Reference this Resource from .java source file. For more details see https://developer.android.com/studio/build/shrink-code.html

    if you are worried about the size of your apk file then its good practice to shrink image files as well. That is convert RGB channel to Indexed channel,this can save up to 50% more space.

    Note: .....YouTubeRecyclerViewFragment.java uses or overrides a deprecated API.

    0 讨论(0)
  • 2021-02-12 22:31

    If you cannot sign the apk in Android Studio, manually signed it with

    jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore my-release-key.keystore my_application.apk alias_name
    

    if you not have the key, generated it with keytool -genkey -v -keystore my-release-key.keystore -alias alias_name -keyalg RSA -keysize 2048 -validity 10000

    You also can manually signed as the manual do:

    keytool -genkey -v -keystore my-release-key.jks-keyalg RSA -keysize 2048 -validity 10000 -alias app
    zipalign -v -p 4 my-app-unaligned.apk my-app.apk
    apksigner sign --ks my-release-key.jks my-app.apk
    

    check the signed apk

    apksigner verify my-app.apk
    
    0 讨论(0)
  • 2021-02-12 22:32

    This :app:proguardRelease UP-TO-DATE .. makes this log not complete enough to say if this answer will help or not.

    Please do clean + build release again to have full log with all steps, you may want also to add --info to gradle options, or even --debug to get more diagnostic messages in gradle build log.

    Clean+build may also fix some weird problem of gradle/other-tool not correctly updating some file and reusing older incorrect one - rarely happens.

    Also try to switch minification OFF (not solution, just experiment), whether it helps (to localize the problem is really with proguard minification and not elsewhere).

    And of course if there are proguard related errors during minification, try to follow advice from the linked answer.

    0 讨论(0)
  • 2021-02-12 22:39

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

    0 讨论(0)
提交回复
热议问题