ANDROID本机库构建的minSdkVersion、CompileSdkVersion和ANDROID_本机_API_级别之间的关系
我正在尝试使用CMakeList.txt文件构建Android本机库。当库使用minsdkversion23构建时,我观察到了一个崩溃,而在使用androidstudio将其构建为minsdkversion21时,我没有遇到这个问题。问题是,在通过命令行构建参数时,我无法确定在何处更改此值或传递参数。构建本机库的正常过程是使用cmake命令和ninja命令生成ninja构建文件,但是cmake命令没有任何变量来指定minSdkVersion 对于使用cmake构建本机库,我能找到的唯一一个可以指定版本的变量是ANDROID_native_API_LEVEL。文档()显示,ANDROID_NATIVE_API_LEVEL是cmake用于编译的版本,但让我困惑的是,每当我在build.gradle文件中更改minSdkVersion并通过gradle文件构建它时,日志文件显示cmake命令使用的是ANDROID_NATIVE_API_级别,该级别设置为gradle文件中的minSdkVersion。它不应该设置为CompileSDK版本中的值吗ANDROID本机库构建的minSdkVersion、CompileSdkVersion和ANDROID_本机_API_级别之间的关系,android,cmake,android-ndk,android-gradle-plugin,Android,Cmake,Android Ndk,Android Gradle Plugin,我正在尝试使用CMakeList.txt文件构建Android本机库。当库使用minsdkversion23构建时,我观察到了一个崩溃,而在使用androidstudio将其构建为minsdkversion21时,我没有遇到这个问题。问题是,在通过命令行构建参数时,我无法确定在何处更改此值或传递参数。构建本机库的正常过程是使用cmake命令和ninja命令生成ninja构建文件,但是cmake命令没有任何变量来指定minSdkVersion 对于使用cmake构建本机库,我能找到的唯一一个可以指
我只需要一种方法将minSdkVersion变量传递给cmake命令。我在这里做错了什么?不,它不应该是
compileSdkVersion
targetSdkVersion
和compileSdkVersion
是Java习惯用法。本机代码的行为与Java代码不同(无论是否实际调用,任何使用过的函数都必须在运行时出现)。因此,minSdkVersion
必须是您的ANDROID\u原生\u API\u级别
看
我想你在android-21设备上运行时看到了MinsdkVersion23的崩溃?谢谢Dan。是的,我在android-21设备上运行时看到了崩溃,预计届时会崩溃
minSdkVersion
是您的应用程序可以使用的最低版本。