当前位置:   article > 正文

android studio里面build.gradle文件说明,ndk版本和gradle插件关系_ndkversion

ndkversion

项目的build.gradle文件 内容说明

  1. // Top-level build file where you can add configuration options common to all sub-projects/modules.
  2. // 整个文件就是一个project对象,隐含了一个project对象,执行下面那个方法
  3. // project.buildscript() project.allprojects() project.task()
  4. /*
  5. 告诉gradle需要下载这个jar包,里面包含种android编译打包的插件类
  6. gradle到哪里下载这个jar包呢 ?????
  7. 由 repositories {
  8. jcenter()
  9. }指定,即到jcenter网站去下载
  10. */
  11. buildscript {
  12. ext.kotlin_version = '1.3.61'
  13. repositories {
  14. google()
  15. jcenter()
  16. }
  17. dependencies {
  18. classpath 'com.android.tools.build:gradle:3.6.1'
  19. classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
  20. // NOTE: Do not place your application dependencies here; they belong
  21. // in the individual module build.gradle files
  22. }
  23. }
  24. //调用这个方法是告诉所有子module,下载依赖就到jcenter网站去下
  25. allprojects {
  26. repositories {
  27. google()
  28. jcenter()
  29. }
  30. }
  31. // 调用这个方法为这个项目构建创建一个任务,可以等构建脚本解析完执行这个任务删除构建生成的build目录
  32. task clean(type: Delete) {
  33. delete rootProject.buildDir
  34. }

一、上述的android gradle 插件版本和gradle版本 对应关系

        Android Gradle 插件版本说明  |  Android 开发者  |  Android Developers 

        

二、修改gradle版本(gradle-wrapper.properties文件),gradle插件版本(build.gradle文件)

  

app里面的build.gradle 内容说明

  1. // 整个文件就是一个project对象,隐含了一个project对象,执行下面那个方法
  2. // project.apply() project.android() project.dependencies()
  3. /*
  4. apply方法的作用是在应用一个android插件
  5. android插件其实就是一个类,这个方法调用后其实是调用Android插件的apply方法
  6. 注意
  7. 只有最开始调用了apply plugin: ‘com.android.application’方法
  8. project才有android方法
  9. */
  10. apply plugin: 'com.android.application' // 应用android插件
  11. apply plugin: 'kotlin-android'
  12. apply plugin: 'kotlin-android-extensions'
  13. // 告诉gradle android app构建的一些配置
  14. android {
  15. compileSdkVersion 29
  16. buildToolsVersion "29.0.3"
  17. defaultConfig {
  18. applicationId "com.face_recon" //appid 唯一标识符
  19. minSdkVersion 21 //低于该android版本的,无法安装该apk
  20. targetSdkVersion 29
  21. versionCode 1
  22. versionName "1.0"
  23. testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" //测试使用
  24. ndk {
  25. abiFilters 'armeabi-v7a'
  26. stl "gnustl_static"
  27. }
  28. externalNativeBuild {
  29. cmake {
  30. arguments "-DANDROID_TOOLCHAIN=clang"
  31. cppFlags "-fopenmp -O2 -fvisibility=hidden -fvisibility-inlines-hidden -fomit-frame-pointer -fstrict-aliasing -ffunction-sections -fdata-sections -ffast-math "
  32. cppFlags "-fopenmp -static-openmp" // 指定-static-openmp 静态,不然到时候运行会找不到该动态文件
  33. cppFlags "-std=c++11"
  34. cppFlags "-frtti"
  35. cppFlags "-fexceptions"
  36. abiFilters 'armeabi-v7a' // 编译成指定框架的so文件
  37. }
  38. }
  39. // 如果上面指定的框架(abiFilters)有多个的话,要指定ndk打包abi类型
  40. //ndk { //添加这个,这个是打包时指定的abi类型
  41. // abiFilters "armeabi-v7a"
  42. //}
  43. }
  44. buildTypes {
  45. release { // 执行assembleRelease打release包才会使用
  46. minifyEnabled false // 不混淆代码
  47. proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' //混淆代码依据的配置文件
  48. }
  49. }
  50. // 添加第三方库
  51. // 方法一:直接添加到jniLibs目录(cpp同级目录) 注意大小写,会自动加载
  52. // 方法二:在main目录下自定义一个目录mylib,然后在build.gradle的android标签下,增加以下内容:
  53. //
  54. // sourceSets {
  55. // main {
  56. // jniLibs.srcDirs = ['mylib']
  57. // }
  58. // }
  59. externalNativeBuild {
  60. cmake {
  61. path "src/main/cpp/CMakeLists.txt"
  62. version "3.10.2"
  63. }
  64. }
  65. }
  66. //dependencies方法是告诉gradle这个module构建需要下载哪些依赖jar
  67. dependencies {
  68. implementation fileTree(dir: 'libs', include: ['*.jar'])
  69. implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
  70. implementation 'androidx.appcompat:appcompat:1.1.0'
  71. implementation 'com.android.support:appcompat-v7:29.0.3'
  72. implementation 'androidx.core:core-ktx:1.2.0'
  73. implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
  74. testImplementation 'junit:junit:4.12'
  75. androidTestImplementation 'androidx.test.ext:junit:1.1.1'
  76. androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
  77. }

NDK版本 和 gradle 插件版本关系

        NDK版本默认是根据配置Android Gradle插件版本(AGP)来选择。

          安装及配置 NDK 和 CMake  |  Android 开发者  |  Android Developers

 

修改NDK版本

方法一:模块的 build.gradle 文件,使用 android.ndkVersion 属性指定相应的版本 

  1. android {
  2. ndkVersion "xxxx" //例如 ndkVersion "21.0.6113669"
  3. }

方法二:修改local.properties文件

  1. # 路径为自己下载的ndk目录
  2. ndk.dir=D\:\\Android\\SDK\\ndk\\21.0.6113669

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/293496
推荐阅读
相关标签
  

闽ICP备14008679号