首页 > 解决方案 > android gradle 如何将构建版本传递给 android mk

问题描述

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

 productFlavors {
       

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

        v3 {
            dexguard = false
            
        }
}

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

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

标签: javaandroidgradlejava-native-interfaceandroid.mk

解决方案


我找到了一种方法来做到这一点

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


推荐阅读