赞
踩
- // 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 插件版本说明 | Android 开发者 | Android Developers
-
- // 整个文件就是一个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版本默认是根据配置Android Gradle插件版本(AGP)来选择。
安装及配置 NDK 和 CMake | Android 开发者 | Android Developers
修改NDK版本
方法一:模块的 build.gradle 文件,使用 android.ndkVersion 属性指定相应的版本
- android {
- ndkVersion "xxxx" //例如 ndkVersion "21.0.6113669"
- }
方法二:修改local.properties文件
- # 路径为自己下载的ndk目录
- ndk.dir=D\:\\Android\\SDK\\ndk\\21.0.6113669
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。