gradle一套代码打包不同包名的app

AndroidManifest.xml
放 前面

 <queries package="${applicationId}">
        <intent>
            <action android:name="android.media.action.IMAGE_CAPTURE" />
        </intent>
        <intent>
            <action android:name="android.media.action.ACTION_VIDEO_CAPTURE" />
        </intent>
    </queries>

配置签名文件
gradle.properties
KEY_ALIAS=com.oplayer
KEY_PASSWORD=synergy123456
KEY_STORE_PASSWORD=Syn99syn
KEY_STORE_PATH=D:/KEY/oplayer.jks

build.gradle

plugins {
    id 'com.android.application'
    id 'org.jetbrains.kotlin.android'
}

android {
    compileSdk 32

    defaultConfig {
        applicationId "com.oplayer.myapplication"
        minSdk 23
        targetSdk 32
        versionCode 1
        versionName "1.0"
        flavorDimensions "LocalAPP"
        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }


    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
    kotlinOptions {
        jvmTarget = '1.8'
    }

    signingConfigs {
        release {
            storeFile file(KEY_STORE_PATH)
            storePassword KEY_STORE_PASSWORD
            keyAlias KEY_ALIAS
            keyPassword KEY_PASSWORD
        }
    }
    buildTypes {
        debug {
            // 显示Log
              signingConfig signingConfigs.release
            minifyEnabled false
            shrinkResources false
        }
        release {
//            minifyEnabled false
//            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
            shrinkResources true
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
            applicationVariants.all { variant ->
                variant.outputs.all {
                    outputFileName = "${getName(applicationId)}_${variant.versionName}_${variant.versionCode}.apk"
                }
            }
            signingConfig signingConfigs.release
            ndk{
                debugSymbolLevel = 'FULL'
            }
        }
    }


    productFlavors {
/*定制包名*/
        myapplication {
            dimension "LocalAPP"
            applicationId 'com.oplayer.myapplication' //包名
            versionName "1.0.0" //版本号
            //应用名
            resValue "string", "app_name", "myapplication"
            manifestPlaceholders = [
                    provider_path : "applicationId"
            ]
        }
        app1 {
            dimension "LocalAPP"
            applicationId 'com.oplayer.APP1' //包名
            versionName "1.0.0" //版本号
            //应用名
            resValue "string", "app_name", "APP1"
            manifestPlaceholders = [
                    provider_path : "applicationId"
            ]
        }
        app2 {
            dimension "LocalAPP"
            applicationId 'com.oplayer.APP2' //包名
            versionName "1.0.0" //版本号
            //应用名
            resValue "string", "app_name", "APP2"
            manifestPlaceholders = [
                    provider_path : "applicationId"
            ]
        }
    }


}


static def getName(String variant) {
    return variant.replaceAll("com.oplayer.", "")
}
dependencies {

    implementation 'androidx.core:core-ktx:1.7.0'

    implementation 'androidx.appcompat:appcompat:1.4.1'
    implementation 'com.google.android.material:material:1.6.0'

    implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
    testImplementation 'junit:junit:4.13.2'
    androidTestImplementation 'androidx.test.ext:junit:1.1.5'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1'
}

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

信工院李平

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值