AndroidStudio中Flutter打包APK

本文介绍了Flutter项目打包Android APK的详细流程。首先需生成签名文件,牢记存放目录和密钥名;接着进行Android Studio配置,包括导入sign.jks、创建key.properites、配置build.gradle文件;最后可在终端执行命令打包APK,并说明了生成目录。
1、生成签名文件

在打包之前我们需要一个签名文件,证明文件的唯一性。

keytool -genkey -v -keystore F:\APP\sign.jks -keyalg RSA -keysize 2048 -validity 10000 -alias sign

F:\APP\sign.jks为签名问价存放目录,sign 为密钥名。

后面都有用,请牢记。

在控制台输入上方指令后,会依次让你输入密钥库口令、姓氏、组织机构等等,下方是我的截图:

查看证书SHA1:

keytool -list -v -keystore F:\APP\sign.jks -alias sign -storepass 123456 -keypass 123456

其中 sign、storepass、keypass 分别为: 别名、密钥库密码、 sign文件密码

2、Android Studio 配置
2.1、导入sign.jks

在Flutter工程中/android/app/key/sign.jks创建该目录。
要在app目录下创建key文件夹,然后把sign.jks拖进来。

如图所示:

2.2、创建key.properites

在Flutter工程中/android/key.properites创建该文件。
里面内容如下:

storePassword=123456
keyPassword=123456
keyAlias=sign
storeFile=key/sign.jks 
2.3、配置/android/app/build.gradle文件

需要修改 app 包下的 build.gradle 文件,增加如下配置:

android {
    signingConfigs {
        release {
            keyAlias 'sign'
            keyPassword 'android'
            storeFile file('key/sign.jks')
            storePassword 'android'
        }
    }

    buildTypes {
        release {
            signingConfig signingConfigs.release
        }
    }
}

完整的代码:

def localProperties = new Properties()
def localPropertiesFile = rootProject.file('local.properties')
if (localPropertiesFile.exists()) {
    localPropertiesFile.withReader('UTF-8') { reader ->
        localProperties.load(reader)
    }
}

def flutterRoot = localProperties.getProperty('flutter.sdk')
if (flutterRoot == null) {
    throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.")
}

def flutterVersionCode = localProperties.getProperty('flutter.versionCode')
if (flutterVersionCode == null) {
    flutterVersionCode = '1'
}

def flutterVersionName = localProperties.getProperty('flutter.versionName')
if (flutterVersionName == null) {
    flutterVersionName = '1.0'
}

apply plugin: 'com.android.application'
apply from"$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"

android {
    compileSdkVersion 28

    lintOptions {
        disable 'InvalidPackage'
    }

    defaultConfig {
        applicationId "sscai.club.flutter_shop"
        minSdkVersion 16
        targetSdkVersion 28
        versionCode flutterVersionCode.toInteger()
        versionName flutterVersionName
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }

    /*针对打包新加的*/
    signingConfigs {
        release {
            keyAlias 'sign'
            keyPassword '123456'
            storeFile file('key/sign.jks')
            storePassword '123456'
        }
    }
    /*针对打包新加的*/

    buildTypes 
{
        release {
            signingConfig signingConfigs.release
        }
    }
}

flutter {
    source '../..'
}

dependencies {
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.2'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
}

项目目录:

3、打包APK

在当前项目目录的终端中执行:flutter build apk

或者直接在 Android Studio 的 Terinal 执行命令:

生成的目录:当前项目\build\app\outputs\apk\release\xx.apk

转载于:https://www.cnblogs.com/niceyoo/p/11046253.html

<think>好的,我现在需要帮助用户解决如何在Android Studio中使用Flutter设置APK文件的名称。首先,我得回忆一下之前学过的相关知识,并查看用户提供的引用内容。 根据引用[2],用户提到在Flutter中设置生成APK的自定义名称,需要在android/app/build.gradle文件的defaultConfig块中添加内容。这说明修改构建配置文件是关键步骤。我需要详细说明如何在build.gradle中配置输出文件名。 接下来,我应该考虑不同的构建类型,比如release和debug。通常,APK生成涉及构建变体,可能需要使用applicationVariants.all来遍历所有变体,并设置outputFileName。这样用户可以根据不同的构建类型自定义名称,比如加上版本号或日期。 另外,用户可能希望文件名包含版本信息,这需要从defaultConfig中获取versionName和versionCode。同时,格式化日期作为时间戳添加到文件名中也是一个常见需求,这可以通过SimpleDateFormat实现。 需要注意Flutter项目结构,特别是Android部分的位置。用户可能需要指导如何找到build.gradle文件,即android/app/build.gradle,这里可能需要修改android{}块内的配置。 还要检查语法是否正确,比如Groovy的语法是否正确,尤其是在闭包中使用applicationVariants.all时的格式。确保代码示例正确,避免用户复制时出错。 最后,用户可能需要生成APK后进行验证,确认文件名是否正确。因此,步骤中应包括构建APK的命令,并指出输出路径,如build/app/outputs/apk/release/。同时提醒可能的错误,比如Gradle同步失败,需要检查语法是否正确。 总结步骤应该是:打开build.gradle文件,在android块内添加自定义文件名配置,使用变体信息和日期,然后同步项目并构建。同时,提供示例代码和注意事项,确保用户能够顺利操作。</think>在Flutter项目中设置APK文件命名规则,需通过修改Android模块的构建配置实现。具体步骤如下: 1. **打开构建配置文件** 定位到文件路径:$android/app/build.gradle$,找到$android$代码块内的$defaultConfig$配置项[^2] 2. **添加动态命名规则** 在android代码块内添加以下配置(注意Groovy语法): ```groovy android { applicationVariants.all { variant -> variant.outputs.all { def flavor = variant.name def versionName = variant.versionName def date = new Date().format("yyyyMMdd") outputFileName = "myapp_${flavor}_v${versionName}_${date}.apk" } } } ``` 该配置会生成如$myapp_release_v1.0.0_20230815.apk$的命名格式[^4] 3. **支持变量插入** 可使用的内置变量包括: - $variant.name$:构建类型(release/debug) - $versionCode$:版本号 - $versionName$:版本名称 - $flavorName$:产品风味名称 4. **构建验证** 执行构建命令后,APK文件将生成在: $build/app/outputs/apk/[build-type]/$目录下[^4] **注意事项** - 修改后需同步Gradle(点击Android Studio右上角的Sync Now) - 确保日期格式不包含非法字符(如冒号) - 不同构建类型(release/debug)会生成独立文件 - Windows系统需使用双引号定义字符串[^3]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值