一次构建同时生成32位和64位的包

1.修改app的build.gradle文件

//多平台apk
productFlavors {
    aaqianfanyidong32{
        dimension "default"
        applicationId = "com.qianfanyidong.forum"
        versionCode 23231
        versionName "5.0.9"
        signingConfig signingConfigs.aaqianfanyidong
        minSdkVersion 21
        ndk{
            abiFilters 'armeabi-v7a'
        }
    }
    aaqianfanyidong64{
        dimension "default"
        applicationId = "com.qianfanyidong.forum"
        versionCode 23231
        versionName "5.0.9"
        signingConfig signingConfigs.aaqianfanyidong
        minSdkVersion 21
        ndk{
            abiFilters 'armeabi-v8a'
        }
    }
}
复制代码

因我们项目比较特殊修改productFlavors下内容后,对应文件夹名称也需修改,否则build会找不到资源文件

image.png
完整代码如下:

apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'kotlin-kapt'

android {
    compileSdkVersion rootProject.compileSdkVersion
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
    aaptOptions {
        cruncherEnabled = false
    }

    defaultConfig {
        minSdkVersion rootProject.minSdkVersion
        targetSdkVersion rootProject.targetSdkVersion
        multiDexEnabled = true
        vectorDrawables.useSupportLibrary = true
    }

    //mark-sign
    signingConfigs {
        aaqianfanyidong {
            keyAlias 'qianfan'
            keyPassword '123456'
            storePassword '123456'
            storeFile file("qianfanyidong.jks")
        }
    }
    //mark-sign


    buildTypes {
        release {
            //指定签名为release
            debuggable false
            zipAlignEnabled true //是否zip优化
            minifyEnabled true  //是否开启混淆
            useProguard true
            shrinkResources false//此属性配合minifyEnabled混淆使用,删除一些无用资源
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
        //mark-debug
        debug {
            debuggable true
            versionNameSuffix "-debug"
            zipAlignEnabled false  //是否zip优化
            minifyEnabled false    //是否开启混淆
            useProguard false
            shrinkResources false  //此属性配合minifyEnabled混淆使用,删除一些无用资源
            //签名所用的配置文件
            signingConfig signingConfigs.aaqianfanyidong
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
        //mark-debug
    }

    lintOptions {
        // 防止在发布的时候出现因MissingTranslation导致Build Failed!
        abortOnError false
        checkReleaseBuilds false
        disable 'MissingTranslation'
    }

    sourceSets {
        main {
            jniLibs.srcDirs = ['libs']
        }
    }

    dexOptions {
        preDexLibraries = false
        javaMaxHeapSize "6g"
    }

    flavorDimensions "default"
    //mark-flavors
    productFlavors {
        aaqianfanyidong32{
            dimension "default"
            applicationId = "com.qianfanyidong.forum"
            versionCode 23231
            versionName "5.0.9"
            signingConfig signingConfigs.aaqianfanyidong
            minSdkVersion 21
            //参考官网优化构建速度https://developer.android.com/studio/build/optimize-your-build
            ndk{
                abiFilters 'armeabi-v7a'
            }
        }
        aaqianfanyidong64{
            dimension "default"
            applicationId = "com.qianfanyidong.forum"
            versionCode 23231
            versionName "5.0.9"
            signingConfig signingConfigs.aaqianfanyidong
            minSdkVersion 21
            //参考官网优化构建速度https://developer.android.com/studio/build/optimize-your-build
            ndk{
                abiFilters 'armeabi-v8a'
            }
        }
    }
    //mark-flavors

    dataBinding {
        enabled = true
    }

}

allprojects {
    repositories {
        jcenter()
    }
}

repositories {
    mavenCentral()
    maven {
        url "https://oss.sonatype.org/content/repositories/snapshots/"
    }
    maven {
        url "https://jitpack.io"
    }
    flatDir {
        dirs 'libs', '../hmspush/libs', '../gdtlib/libs', '../rongmedia/libs', '../tongdun/libs','../baidu/libs'
    }
    flatDir {
        dirs "../${rootProject.ext.ccb_project_name}/src/main/lib"
    }
}

buildscript {
    repositories {
        mavenCentral()
    }
}

dependencies {
    implementation fileTree(include: ['*.jar'], dir: 'libs')
    implementation 'androidx.multidex:multidex:2.0.1'
    ...
}

复制代码

2.构建

image.png

image.png

3.分析

构建结束后可以分析下apk是不是正确的,可以使用Android studio中工具

image.png

然后选择目标apk看下lib文件夹下是不是对应32或64位的

image.png

参考文档:blog.csdn.net/javazejian/…

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享