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.") throw new Exception("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 plugin: 'kotlin-android' apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle" apply plugin: 'com.android.application' apply plugin: 'android-junk-code' apply plugin: 'com.huawei.agconnect' androidJunkCode { variantConfig { release { //注意:这里的release是变体名称,如果没有设置productFlavors就是buildType名称,如果有设置productFlavors就是flavor+buildType,例如(freeRelease、proRelease) packageBase = "cn.hx.plugin.ui" //生成java类根包名 packageCount = 30 //生成包数量 activityCountPerPackage = 3 //每个包下生成Activity类数量 excludeActivityJavaFile = false //是否排除生成Activity的Java文件,默认false(layout和写入AndroidManifest.xml还会执行),主要用于处理类似神策全埋点编译过慢问题 otherCountPerPackage = 50 //每个包下生成其它类的数量 methodCountPerClass = 20 //每个类下生成方法数量 resPrefix = "junk_" //生成的layout、drawable、string等资源名前缀 drawableCount = 300 //生成drawable资源数量 stringCount = 300 //生成string数量 } } } android { signingConfigs { // 这里“debug”不是一个自定义变量,而是一个特定的关键词,凡是使用--debug模式,都会引用到这里 // 目前看来,debug模式没办法在buildTypes里面按flavors指定编译签名,所有口味的debug模式只能用同一个签名 debug { storeFile file("starlock.keystore") storePassword '123456' keyAlias = 'starlock' keyPassword '123456' // storeFile file("xhj.jks") // storePassword 'xhj8872' // keyAlias = 'upload' // keyPassword 'xhj8872' } sky { // CN=Unknown, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=Unknown storeFile file("sky.jks") storePassword 'sky2028' keyAlias = 'upload' keyPassword 'sky2028' } xhj { storeFile file("xhj.jks") storePassword 'xhj8872' keyAlias = 'upload' keyPassword 'xhj8872' } } // ----- BEGIN flavorDimensions (autogenerated by flutter_flavorizr) ----- flavorDimensions "flavor-type" productFlavors { local { dimension "flavor-type" applicationId "com.starlock.lock.local" signingConfig signingConfigs.debug resValue "string", "app_name", "星锁-local" manifestPlaceholders.JPUSH_PKGNAME = "com.starlock.lock.local" } dev { dimension "flavor-type" applicationId "com.starlock.lock.dev" signingConfig signingConfigs.debug resValue "string", "app_name", "星锁-dev" manifestPlaceholders.JPUSH_PKGNAME = "com.starlock.lock.dev" } pre { dimension "flavor-type" applicationId "com.starlock.lock.pre" signingConfig signingConfigs.debug resValue "string", "app_name", "星锁" manifestPlaceholders.JPUSH_PKGNAME = "com.starlock.lock.pre" } sky { dimension "flavor-type" applicationId "com.skychip.lock" signingConfig signingConfigs.sky resValue "string", "app_name", "锁通通" manifestPlaceholders.JPUSH_PKGNAME = "com.skychip.lock" } xhj { dimension "flavor-type" applicationId "com.xhjcn.lock" signingConfig signingConfigs.xhj resValue "string", "app_name", "星星锁" manifestPlaceholders.JPUSH_PKGNAME = "com.xhjcn.lock" } } // ----- END flavorDimensions (autogenerated by flutter_flavorizr) ----- compileSdkVersion flutter.compileSdkVersion ndkVersion flutter.ndkVersion lintOptions{ checkReleaseBuilds false abortOnError false } compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } kotlinOptions { jvmTarget = '1.8' } sourceSets { main.java.srcDirs += 'src/main/kotlin' } defaultConfig { applicationId "com.skychip.lock" // You can update the following values to match your application needs. // For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-build-configuration. minSdkVersion 25 targetSdkVersion 33 versionCode flutterVersionCode.toInteger() versionName flutterVersionName // 为减少体积,使用不同架构分包发布编译选项 flutter build apk --split-per-abi // 所以需要禁用ndk在同一个个包中包含多个架构 // 但是禁用NDK配置,又无法使用flutter run 命令了,因为编译完成它按照名称匹配找不到.apk包 ndk { //设置支持的SO库架构(开发者可以根据需要,选择一个或多个平台的so) // abiFilters "armeabi", "armeabi-v7a", "arm64-v8a", "x86","x86_64" // 参考魅族平台的公告,得知在2023年1月商店就可以只需要64位应用即可 // 这说明32位是很老很老的平台,我们的flutter或者说我们的项目本来就兼容不了老平台,架构兼容也没必要 abiFilters "arm64-v8a" } manifestPlaceholders = [ JPUSH_PKGNAME : "这里不重要,在口味配置", //JPush 上注册的包名对应的 Appkey. // JPUSH_APPKEY : "7ff37d174c1a568a89e98dad",//--skyAppKey JPUSH_APPKEY : "251fc8074820d122b6de58d2",//--鑫泓佳AppKey JPUSH_CHANNEL : "flutter_channel", //若不集成厂商通道,可直接跳过以下配置 //以下为sky的配置 // XIAOMI_APPID : "MI-2882303761520287291", // XIAOMI_APPKEY : "MI-5352028744291", //以下均为鑫泓佳的配置 XIAOMI_APPID : "MI-2882303761520314939", XIAOMI_APPKEY : "MI-5312031456939", OPPO_APPKEY : "OP-47f668c9943248118502aa58d066393b", OPPO_APPID : "OP-31726001", OPPO_APPSECRET : "OP-05723986bba64183a71530b496922450", VIVO_APPKEY : "75fe8e570425b714e08d0390b14797cb", VIVO_APPID : "105752244", HONOR_APPID : "104458196", ] splits { abi { enable true reset() // 参考魅族平台的公告,得知在2023年1月商店就可以只需要64位应用即可 // 这说明32位是很老很老的平台,我们的flutter或者说我们的项目本来就兼容不了老平台,架构兼容也没必要 // include "armeabi", "armeabi-v7a", "arm64-v8a", "x86","x86_64" // include "arm64-v8a" universalApk false } } } buildTypes { debug { // 高德地图导致release编译模式下应用闪退,根据:[高德地图在Debug模式下运行正常但是打Release包时则闪退解决办法](https://blog.csdn.net/weixin_39370093/article/details/109631210) // 为release模式设置混淆可以解决地图闪退问题 // 真实的解决办法 minifyEnabled false shrinkResources false productFlavors.local.signingConfig signingConfigs.debug productFlavors.dev.signingConfig signingConfigs.debug productFlavors.pre.signingConfig signingConfigs.debug productFlavors.sky.signingConfig signingConfigs.sky productFlavors.xhj.signingConfig signingConfigs.xhj } release { // 高德地图导致release编译模式下应用闪退,根据:[高德地图在Debug模式下运行正常但是打Release包时则闪退解决办法](https://blog.csdn.net/weixin_39370093/article/details/109631210) // 为release模式设置混淆可以解决地图闪退问题 // 真实的解决办法 minifyEnabled false shrinkResources false productFlavors.local.signingConfig signingConfigs.debug productFlavors.dev.signingConfig signingConfigs.debug productFlavors.pre.signingConfig signingConfigs.debug productFlavors.sky.signingConfig signingConfigs.sky productFlavors.xhj.signingConfig signingConfigs.xhj } } } flutter { source '../..' } dependencies { implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" implementation('com.amap.api:location:5.6.0') implementation('com.amap.api:3dmap:8.1.0') implementation 'cn.jiguang.sdk:jpush:5.2.3' // 接入华为厂商 implementation 'com.huawei.agconnect:agconnect-core:1.8.1.300' implementation 'com.huawei.hms:push:6.12.0.300' implementation 'cn.jiguang.sdk.plugin:huawei:5.2.3' // 接入小米厂商 implementation 'cn.jiguang.sdk.plugin:xiaomi:5.2.3' //接入OPPO厂商 implementation 'cn.jiguang.sdk.plugin:oppo:5.2.3' //引入 libs 中的 aar,如果项目中有此依赖不需要重复引用 implementation fileTree(include: ['*.jar','*.aar'], dir: 'libs') //OPPO 3.1.0 aar 及其以上版本需要添加以下依赖 implementation 'com.google.code.gson:gson:2.6.2' implementation 'commons-codec:commons-codec:1.6' implementation 'androidx.annotation:annotation:1.1.0' // 接入荣耀厂商 implementation 'cn.jiguang.sdk.plugin:honor:5.2.3' //需要单独引入荣耀厂商 aar ,请下载官网 SDK 包并把 jpush-android-xxx-release/third-push/honor/libs 下的 aar 文件单独拷贝一份到应用 module/libs 下 // implementation(name: 'HiPushSDK-7.0.61.303', ext: 'aar') //接入 VIVO 厂商 implementation 'cn.jiguang.sdk.plugin:vivo:5.2.3' }