Android studio 打包release版本 apk 换方式了?

Posted 夢鑰

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android studio 打包release版本 apk 换方式了?相关的知识,希望对你有一定的参考价值。


前言

 有一段时间没有搞android,在基本操作打release包的时候竟然一直打包不成功,一直报

Generate Signed APK: APK(s) generated successfully for module 'CorrectionPlatform.app' with 0 build variants:

但主要还不提示打包失败;

在经历一段煎熬各种搜索各种找,终于找到了另一种可以生成release包的方法。

再看下面之前是默认你已经生成好了 jks文件,jsk是什么我这里就不提了; 

一、之前打包方法

    1、之前打包方式:点击顶部工具栏的Build > Generate Signed Bundle / APK .....  如图

2、弹窗选择 APK  然后 Next

 3、然后选择jsk文件输入相关信息  继续 在Next

4、然后再选择release 再点击 Finish  ,然后就等着打完包  就好了

 5、以上是我之前操作的方法,可以生成release包,但是不知道怎么现在通过上面那钟方式无法生成release包了。

然后前看下面方法

二、新大陆打包方法

 

1、点击顶部File 如下图

2、点击Moudle 如下图

3、上一步添加完release后 ,然后操作 选择jsk、输入密码、别名.....

4、配置完Models的release后,然后 再点击 Build Variants 选择  继续看下图。

5、上述步骤都完成后,点击顶部工具栏 View > Build Variants

点击后  会出现 下面这个框,将debug选择为 release

6、点击顶部工具栏Build > 如下图   然后等会就会打包成release包了

3、自定义生成apk名称

 // 一定要写在android节点外 ---注意写的位置----
def releaseTime() 
    return new Date().format("yyyyMMddHHmmss", TimeZone.getDefault())


ext.appName = "QQ"

    // 一定要写在android节点中 ---注意写的位置----
    applicationVariants.all  variant ->
        variant.outputs.all  output ->
            def outputFile = output.outputFile
            if (outputFile != null && outputFile.name.endsWith('.apk')) 
                def fileName
                if (variant.buildType.name == 'release') 
                    fileName = "$appName-$defaultConfig.versionName-$releaseTime()-release.apk"
                 else if (variant.buildType.name == 'debug') 
                    fileName = "$appName-$defaultConfig.versionName-$releaseTime()-debug.apk"
                 else 
                    fileName = "$appName-$defaultConfig.versionName-$releaseTime()-other.apk"
                
                outputFileName = fileName
            
        
    

 

 

总结

 学无止境,跟不上时代了。

Android Studio打包生成APK教程

一、修改版本和指定生成APK文件名【可选】

将项目切换到Project视图,打开app目录下的build.gradle文件

1.1 修定软件版本

如1.2图所示。

versionCodeapp的大版本号,为数值类型,默认为1我这里改为2。

versionNameapp的具体版本号,为际符串类型,默认为1.0我这里改为2.3。

 

1.2 指定生成的APK文件名

一样是在build.gradle文件中修改,默认生成的releaseapk名为app-release.apk

android内部defaultConfig同层下添加以不内容(outputFileName改成自己想要的apk名)

android.applicationVariants.all {
    variant ->
        variant.outputs.all {
            // 此处指定生成的apk文件名
            outputFileName = "SecTest.apk"
        }
}

 

二、进行安全加固【可选】

如果想提高APP的反编译能力,可以对APP进行安全加固,参看APP安全防护基本方法(混淆/签名验证/反调试)

 

三、导出签名发布版apk

直接点“Build APK(s)”生成的是使用默认的debug.keystore签名的Debug版apk(生成在app\\build\\outputs\\apk\\debug目录下),真正发布软件时我们需要生成自己密钥签名的release版apk。

菜单栏----Build----Generate Signed APK

Key store path中输入自己要用来进行签名的密钥文件的存放位置,同时输入密钥文件的读写用户名密码(如果还没有密钥文件点击图中的“Create New”进行创建即可)

APK Destination Folder-----APK文件生成的目录

Build Type----生成release版还是debug

Signature Version----对哪些部分进行签名

生成完成后在指定生成目录下即会有一个release文件夹在其下即可找到生成的apkapp-release.apk是我之前生成的版本)

 

以上是关于Android studio 打包release版本 apk 换方式了?的主要内容,如果未能解决你的问题,请参考以下文章

Android studio 打包release版本 apk 换方式了?

升级完Android Studio3.2后,打包release出现的错误

Android Studio 超级简单的打包生成apk

android studio 怎么编译release版本

Android Studio的签名打包后报错提示:Lint found fatal errors while assembling a release target

Cordova打包android release正式包流程