android gradle如何将构建版本传递给android mk

问题描述

我有一个可以构建v2,v3版本的android项目

 productFlavors {
       

        v2 {
           
            versionName "${versionMajor}.${versionMinor}.${versionBuild}"
        }

        v3 {
            dexguard = false
            
        }
}

我想对不同的构建版本v2,v3使用两个版本的本地jni代码

所以,我想将v2,v3 productFlavors传递给android.mk, 我该怎么做?或者,在android.mk中有任何方法可以知道要构建哪个版本(v2,v3),然后它可以构建不同版本的jni代码

解决方法

我找到了一种方法

1。在build.gradle中定义一个全局变量version
2.为version分配不同风味的不同值
3.选中version变量以使用其他android.mk

String version=""
productFlavors {
       

        v2 {
           
            versionName "${versionMajor}.${versionMinor}.${versionBuild}"
            version="v2"

        }

        v3 {
            dexguard = false
            version="v3"
            
        }
}

if (version=="v2") {    
        externalNativeBuild {
            ndkBuild {
                path "AndroidV2.mk"
            }
        }
    }else{
        externalNativeBuild {
            ndkBuild {
                path "AndroidV3.mk"
            }
        }
    }
}