flutter开发实战-build apk名称及指令abiFilters常用gradle设置

这篇具有很好参考价值的文章主要介绍了flutter开发实战-build apk名称及指令abiFilters常用gradle设置。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

flutter开发实战-build apk名称及指令abiFilters常用gradle设置

最近通过打包flutter build apk lib/main.dart --release,发现apk命名规则需要在build.gradle设置。这里记录一下。

一、apk命名规则

在android/app/build.gradle中需要设置

  android.applicationVariants.all {variant ->
        variant.outputs.all {
            def buildTime = new Date().format('yyyyMMddHHmm')
            outputFileName = "${project.publishName}_${variant.versionName}_${variant.versionCode}_${buildTime}_${variant.buildType.name}.apk"
        }
    }
    

指令abiFilters

defaultConfig {
        // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
        applicationId "com.example.flutter_app_demolab"
        // You can update the following values to match your application needs.
        // For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-gradle-build-configuration.
        minSdkVersion 21
        targetSdkVersion flutter.targetSdkVersion
        versionCode flutterVersionCode.toInteger()
        versionName flutterVersionName

        ndk {
            abiFilters "armeabi-v7a", "arm64-v8a"
        }
    }
    

最后通过指令

flutter build apk lib/main.dart --release
    

打包处理的apk在build/app/outputs目录下
flutter开发实战-build apk名称及指令abiFilters常用gradle设置,flutter开发实战,移动开发,flutter,flutter,1024程序员节
这里的版本name及版本code是需要在pubspec.yaml设置

# In Windows, build-name is used as the major, minor, and patch parts
# of the product and file versions while build-number is used as the build suffix.
version: 1.0.0+1

environment:
  sdk: '>=2.19.6 <3.0.0'
    

二、完整的android/build.gradle

在工程的android/build.gradle完整设置如下

buildscript {
    ext.kotlin_version = '1.7.10'
    repositories {
        maven { url "https://maven.aliyun.com/repository/google" }
        maven { url "https://maven.aliyun.com/repository/central" }
        maven { url "https://maven.aliyun.com/repository/jcenter" }
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:7.2.0'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    }
}

allprojects {
    repositories {
        maven { url "https://maven.aliyun.com/repository/google" }
        maven { url "https://maven.aliyun.com/repository/central" }
        maven { url "https://maven.aliyun.com/repository/jcenter" }
    }
}

rootProject.buildDir = '../build'
subprojects {
    project.buildDir = "${rootProject.buildDir}/${project.name}"
}
subprojects {
    project.evaluationDependsOn(':app')
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

    

在工程的gradle.properties,如果工程用到了AndroidX,需要设置android.useAndroidX=true

org.gradle.jvmargs=-Xmx1536M
android.useAndroidX=true
android.enableJetifier=true
    

三、android/app/build.gradle设置

在工程的android/app/build.gradle设置如下

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'
}

ext {
    publishName = 'AppDemoLab'
}

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

android {
    compileSdkVersion 34
    ndkVersion flutter.ndkVersion

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }

    defaultConfig {
        // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
        applicationId "com.example.flutter_app_demolab"
        // You can update the following values to match your application needs.
        // For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-gradle-build-configuration.
        minSdkVersion 21
        targetSdkVersion flutter.targetSdkVersion
        versionCode flutterVersionCode.toInteger()
        versionName flutterVersionName

        ndk {
            abiFilters "armeabi-v7a", "arm64-v8a"
        }
    }

    buildTypes {
        release {
            // TODO: Add your own signing config for the release build.
            // Signing with the debug keys for now, so `flutter run --release` works.
            signingConfig signingConfigs.debug
        }
    }

    android.applicationVariants.all {variant ->
        variant.outputs.all {
            def buildTime = new Date().format('yyyyMMddHHmm')
            outputFileName = "${project.publishName}_${variant.versionName}_${variant.versionCode}_${buildTime}_${variant.buildType.name}.apk"
        }
    }
}

flutter {
    source '../..'
}
    

四、小结

flutter开发实战-build apk名称及指令abiFilters常用gradle设置

学习记录,每天不停进步。文章来源地址https://www.toymoban.com/news/detail-860473.html

到了这里,关于flutter开发实战-build apk名称及指令abiFilters常用gradle设置的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • flutter开发实战-常用的路由Route配置

    flutter开发实战-常用的路由Route配置 路由(Route)在移动开发中通常指页面(Page),这跟 Web 开发中单页应用的 Route 概念意义是相同的,Route 在 Android中 通常指一个 Activity,在 iOS 中指一个 ViewController。所谓路由管理,就是管理页面之间如何跳转,通常也可被称为导航管理。

    2024年02月13日
    浏览(49)
  • 【Android】使用build.gradle.kt配置目标架构(abiFIlters)时报错 Val cannot be reassigned

    传统上我们会使用 groovy 语言的配置文件 build.gradle 来配置: 在app级别的build.gradle中的 android defaultConfig 添加子项 新版本的默认使用 kotlin 语言的配置文件 build.gradle.kt 来配置gradle: 相应地会想到使用下列代码来指定abi: 此时进行sync就会报错: Val cannot be reassigned Type mismatch.

    2024年01月25日
    浏览(37)
  • Flutter 常用指令

    1.flutter create app_01 :创建一个新的Flutter项目 2.flutter run:运行应用程序 3.flutter run -d deviceId:运行指定模拟器或者真机 4.flutter devices:查看计算机上的真机设备和IOS模拟器 5.flutter emulators:获取模拟器设备列表  6.flutter doctor:检查flutter开发环境是否正确及提供修复建议 7.flu

    2024年02月08日
    浏览(31)
  • flutter实战(01)windows桌面版 修改应用logo、名称、显示位置、显示大小

    说明:该系列文章主要为flutter在windows桌面平台实战中遇到的一些坑。 只需要在flutter项目/windows/runner/resources目录下替换原来的应用图标 app_icon.ico即可。 修改flutter项目/windows/runner/main.cpp 文件,在函数wWinMain中修改,代码如下: 说明:如果中文显示乱码,那么就使用notpad++编

    2024年01月25日
    浏览(87)
  • Git 实战指南:常用指令精要手册(持续更新)

    👑专栏内容:Git ⛪个人主页:子夜的星的主页 💕座右铭:前路未远,步履不停 Git 是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。Git 是基于 Linux内核开发的版本控制工具,与常用的版本控制工具不同,它采用了分布式版本库的方

    2024年01月18日
    浏览(54)
  • ubuntu下常用开发指令

    用-l或者-lh都行,加个h会增加可读性,如果想看具体某个文件,在后边加上文件名即可

    2024年02月04日
    浏览(50)
  • flutter 开发之 Could not build the precompiled application for the device. Error (Xcode): No profiles f

    问题:Could not build the precompiled application for the device. Error (Xcode): No profiles for ‘com.example.ql’ were found: Xcode couldn’t find any iOS App Development provisioning profiles matching ‘com.example.ql’. Automatic signing is disabled and unable to generate a profile. To enable automatic signing, pass -allowProvisioningUpdates to x

    2024年02月22日
    浏览(50)
  • flutter开发实战-多语言flutter intl

    flutter开发实战-多语言flutter intl 之前做的应用中有用到多语言,一直没有整理,这里整理一下多语言设置流程。 使用的是Android studio 使用Android studio安装flutter_intl 插件,更新或者安装flutter_intl 插件后会提示重新启动IDE。 如图所示: 在Android Studio中菜单Tools找到flutter intl创建

    2024年02月13日
    浏览(42)
  • 给前端开发的一份 flutter 常用组件指南

    可以理解为 div 元素,可设置宽高等属性 常用属性如下: 属性 类型 描述 width double 宽 height double 高 padding EdgeInsetsGeometry 内边距 margin EdgeInsetsGeometry 外边距 color Color 背景色,注意不能跟 decoration.color 同时使用,会报错 decoration Decoration 盒模型装饰器 示例: 等价于以下的样式

    2024年02月11日
    浏览(47)
  • flutter开发实战-inappwebview实现flutter与Javascript方法调用

    flutter开发实战-inappwebview实现flutter与Javascript方法调用 在使用inappwebview时候,需要flutter端与JS进行交互,调用相应的方法,在inappwebview中的JavaScript Handlers。 要添加JavaScript Handlers,可以使用InAppWebViewController.addJavaScriptHandler方法,在该方法中定义handlerName和JavaScript端调用它时要

    2024年02月03日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包