项目的build.gradle文件 内容说明
// Top-level build file where you can add configuration options common to all sub-projects/modules.
// 整个文件就是一个project对象,隐含了一个project对象,执行下面那个方法
// project.buildscript() project.allprojects() project.task()
/*
告诉gradle需要下载这个jar包,里面包含种android编译打包的插件类
gradle到哪里下载这个jar包呢 ?????
由 repositories {
jcenter()
}指定,即到jcenter网站去下载
*/
buildscript {
ext.kotlin_version = '1.3.61'
repositories {
google()
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.6.1'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
//调用这个方法是告诉所有子module,下载依赖就到jcenter网站去下
allprojects {
repositories {
google()
jcenter()
}
}
// 调用这个方法为这个项目构建创建一个任务,可以等构建脚本解析完执行这个任务删除构建生成的build目录
task clean(type: Delete) {
delete rootProject.buildDir
}
一、上述的android gradle 插件版本和gradle版本 对应关系
Android Gradle 插件版本说明 | Android 开发者 | Android Developers
二、修改gradle版本(gradle-wrapper.properties文件),gradle插件版本(build.gradle文件)
app里面的build.gradle 内容说明
// 整个文件就是一个project对象,隐含了一个project对象,执行下面那个方法
// project.apply() project.android() project.dependencies()
/*
apply方法的作用是在应用一个android插件
android插件其实就是一个类,这个方法调用后其实是调用Android插件的apply方法
注意
只有最开始调用了apply plugin: ‘com.android.application’方法
project才有android方法
*/
apply plugin: 'com.android.application' // 应用android插件
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
// 告诉gradle android app构建的一些配置
android {
compileSdkVersion 29
buildToolsVersion "29.0.3"
defaultConfig {
applicationId "com.face_recon" //appid 唯一标识符
minSdkVersion 21 //低于该android版本的,无法安装该apk
targetSdkVersion 29
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" //测试使用
ndk {
abiFilters 'armeabi-v7a'
stl "gnustl_static"
}
externalNativeBuild {
cmake {
arguments "-DANDROID_TOOLCHAIN=clang"
cppFlags "-fopenmp -O2 -fvisibility=hidden -fvisibility-inlines-hidden -fomit-frame-pointer -fstrict-aliasing -ffunction-sections -fdata-sections -ffast-math "
cppFlags "-fopenmp -static-openmp" // 指定-static-openmp 静态,不然到时候运行会找不到该动态文件
cppFlags "-std=c++11"
cppFlags "-frtti"
cppFlags "-fexceptions"
abiFilters 'armeabi-v7a' // 编译成指定框架的so文件
}
}
// 如果上面指定的框架(abiFilters)有多个的话,要指定ndk打包abi类型
//ndk { //添加这个,这个是打包时指定的abi类型
// abiFilters "armeabi-v7a"
//}
}
buildTypes {
release { // 执行assembleRelease打release包才会使用
minifyEnabled false // 不混淆代码
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' //混淆代码依据的配置文件
}
}
// 添加第三方库
// 方法一:直接添加到jniLibs目录(cpp同级目录) 注意大小写,会自动加载
// 方法二:在main目录下自定义一个目录mylib,然后在build.gradle的android标签下,增加以下内容:
//
// sourceSets {
// main {
// jniLibs.srcDirs = ['mylib']
// }
// }
externalNativeBuild {
cmake {
path "src/main/cpp/CMakeLists.txt"
version "3.10.2"
}
}
}
//dependencies方法是告诉gradle这个module构建需要下载哪些依赖jar
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
implementation 'androidx.appcompat:appcompat:1.1.0'
implementation 'com.android.support:appcompat-v7:29.0.3'
implementation 'androidx.core:core-ktx:1.2.0'
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test.ext:junit:1.1.1'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
}
NDK版本 和 gradle 插件版本关系
NDK版本默认是根据配置Android Gradle插件版本(AGP)来选择。
安装及配置 NDK 和 CMake | Android 开发者 | Android Developers
修改NDK版本
方法一:模块的 build.gradle 文件,使用 android.ndkVersion 属性指定相应的版本 文章来源:https://www.toymoban.com/news/detail-563583.html
android {
ndkVersion "xxxx" //例如 ndkVersion "21.0.6113669"
}
方法二:修改local.properties文件文章来源地址https://www.toymoban.com/news/detail-563583.html
# 路径为自己下载的ndk目录
ndk.dir=D\:\\Android\\SDK\\ndk\\21.0.6113669
到了这里,关于android studio里面build.gradle文件说明,ndk版本和gradle插件关系的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!