android_ndk_build_flags 配置,Android studio配置NDK问题小结
1. Plugin with id 'com.android.model.application' not found
修正最上层的build文件,
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
jcenter()
}
dependencies {
//classpath 'com.android.tools.build:gradle:2.0.0'
classpath 'com.android.tools.build:gradle-experimental:0.7.0-rc1'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
....
}同时修改app目录下的build.gradle文件(红色部分),如果
apply plugin:'com.android.model.application';
model {
android {
compileSdkVersion 23
buildToolsVersion "23.0.3"
defaultConfig {
applicationId "com.example.king.mytest"
minSdkVersion.apiLevel 15
targetSdkVersion.apiLevel 23
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
// proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
proguardFiles.add(file('proguard-rules.pro'))
}
}
ndk {
moduleName = "NdkSample"
cppFlags.add("-std=c++11")
cppFlags.add("-fexceptions")
abiFilters.add("armeabi")
abiFilters.add("x86")
ldLibs.add("android")
ldLibs.add("log")
stl = "gnustl_shared"
}
productFlavors {
create("arm") {
ndk.abiFilters.add("armeabi")
}
create("arm7") {
ndk.abiFilters.add("armeabi-v7a")
}
create("arm8") {
ndk.abiFilters.add("arm64-v8a")
}
create("x86") {
ndk.abiFilters.add("x86")
}
create("x86-64") {
ndk.abiFilters.add("x86_64")
}
create("mips") {
ndk.abiFilters.add("mips")
}
create("mips-64") {
ndk.abiFilters.add("mips64")
}
// To include all cpu architectures, leaves abiFilters empty
//create("all")
}
compileOptions.with {
sourceCompatibility JavaVersion.VERSION_1_7
targetCompatibility JavaVersion.VERSION_1_7
}
}//end android
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
//testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:23.3.0'
}
2. 支持C++11,在app的build文件内修改
ndk {
moduleName = "NdkSample"
cppFlags.add("-std=c++11")
cppFlags.add("-fexceptions")
abiFilters.add("armeabi")
abiFilters.add("x86")
ldLibs.add("android")
ldLibs.add("log")
stl = "gnustl_shared"
}其中有个比较有意思的是,也是让我搞了大半天的问题是加入这些配置项的写法问题
有类似 cppFlags "-std=c++11"
也有类似cppFlags +="-std=c++11"方式,我最后编译通过是使用了add方式
网上有说在gradleWrapper中如果使用的是2.5,cppFlags 的添加则使用 += 的方式,否则需要使用.add的方式
(我的是gradle-2.10-all,可在gradle/wrapper/gradle-wrapper.properties文件中查看)
哪位小伙伴如果清楚为什么会有这么多配置方式请指点明路呀,多谢!!!
3. The currently selected variant "arm7-debug" uses split APKs, but none of the 1 split apks are compatible with the current device with density "480" and ABIs "x86".
最开始以为需要在productFlavors 内增加x86的支持,结果增加后仍然提示此问题。
最后在NDK中通过增加abiFilters.add("x86") 的方式解决
4. 同时生成多个so文件
由于对gradle配置不熟悉的原因,导致很多问题绕了好多圈子。例如想要生成多个so的方法如下,即在ndk中配置多个moduleName
ndk {
moduleName = "NdkSample"
cppFlags.add("-std=c++11")
cppFlags.add("-fexceptions")
abiFilters.add("armeabi")
abiFilters.add("x86")
ldLibs.add("android")
ldLibs.add("log")
//stl = "gnustl_shared"
//c code
moduleName = 'hello-jni'
toolchain = 'clang'
CFlags.addAll(['-Wall'])
}
android_ndk_build_flags 配置,Android studio配置NDK问题小结相关推荐
- [Android] 环境优化配置Android Studio发展NDK
======================================================== 作者:qiujuer 博客:blog.csdn.net/qiujuer 站点:www. ...
- android百度api配置,Android Studio 配置使用百度api (附带简单样例)(示例代码)
还是和同学开发的那个课程作业项目的app, 要使用到百度地图的api 但是,官方文档貌似只有Eclipse的例子,对Android Studio似乎没有说明. 难道,是因为后者是 "Doo ...
- android studio aspectj 配置,Android studio配置AspectJ
一.首先说说使用AspectJ的意义 使用切点插入,减少冗余代码,但是因为是编译时插入,所以运行时会有性能损耗,但是总的来说微乎其微 二.运行原理 这是我原来的代码 @BehaviorTrace(&q ...
- Mac下Android studio 之NDK配置教程(一)
Mac下Android studio 之NDK配置教程(一) 1.概述 近期项目全线转移到Mac下使用使用Android studio开发. 遇到关键代码封装到 ***native***层,此时在wi ...
- 【Android NDK 开发】Android.mk 配置静态库 ( Android Studio 配置静态库 | 配置动态库与静态库区别 | 动态库与静态库打包对比 )
文章目录 I . Android Studio 中使用 Android.mk 配置静态库 总结 II . 第三方动态库来源 III . 配置 Android.mk 构建脚本路径 IV . 预编译 第三 ...
- 【Android NDK 开发】Android.mk 配置动态库 ( Android Studio 配置动态库 | 动态库加载版本限制 | 本章仅做参考推荐使用 CMake 配置动态库 )
文章目录 I . Android Studio 中使用 Android.mk 配置动态库 总结 II . 第三方动态库来源 III . 配置 Android.mk 构建脚本路径 IV . 预编译 第三 ...
- 【Android NDK 开发】Android Studio 的 NDK 配置 ( 源码编译配置 | 构建脚本配置 | 打包配置 | CMake 配置 | ndkBuild 配置 )
文章目录 I . 源码编译配置 II . 构建脚本配置 III . NDK 函数库打包配置 IV . Java 与 C 代码示例 V . CMake 配置 ( CMakeLists.txt ) VI ...
- Mac下Android studio 之NDK配置教程(二)
Mac下Android studio 之NDK配置教程(二) (一)简述 从上一篇NDK配置教程(一) 中,我 简单的阐述了MAC下NDK的基本解压和环境配置步骤. 本节我讲详细描述android s ...
- Android studio 配置NDK ---实验步骤跟进记录(初定完结)
测试环境 ---- android studio 3.0 NDK环境 ---- 17.1.4828580 目的:开源博客,希望各位纠错指正,指正的位置也会标注出指正的作者,本人QQ231734881 ...
最新文章
- 谷歌编程语言年度榜NO.1:知识体系总结(2021版)
- 第五周项目四-长方柱型(2)
- 结构对齐--__packed与#pragma pack
- VTK:BSP树时序用法实战
- 【翻译】Prometheus 2.4.0 新特性
- iOS Class结构分析
- python 字符串子串_Python字符串子字符串
- 为什么机器学习在投资领域不好使
- Python根据歌曲id爬取网易云音乐歌词
- linux用户及组管理实训,实训 Linux下用户和组的管理和权限命令操作.doc
- 数据安全治理方法导论
- shenyu2.5.0解决Exceeded limit on max bytes to buffer:262144
- python数据分析学习和建模的个人笔记(一)
- Discuz仿今日头条模板/Discuz新闻资讯商业版GBK模板
- 如何进行邮件营销,邮件营销群发是否有效?
- Unity2D音游案例-节奏大师教程+源码+素材
- CodeForces869E The Untended Antiquity
- 小世界效应:从凯文·贝肯到六度分隔理论(1)
- VC++获取磁盘剩余空间(附源码)
- HarmonyOS上玩“语音识别”