截至2015年1月,NDK对Android工作室的支持仍无法使用。 一条神秘的信息说:"将来会提供替代方案。"
我想知道这方面的gradle / google方向是什么,因为目前无法制定正确的发展计划。
版本0.7+:他们建议仍然使用ndk-build / ant 版本0.8+:他们引入了最小的NDK支持 版本1.0.0:看起来NDK支持将是正式的 版本1.0.2:现在看来NDK支持已被弃用。
我的问题是:
是否每个人都回复到ndk-build和手工制作的android.mk文件?
是否有人在1.0.0+(gradle ndk支持)上使用当前已弃用的方法进行严重规模的项目?
将来会提供什么样的方向"替代方案"会去?任何内部人员都可以在不违反任何公司规则的情况下回答这个问题吗?
编辑:它不是重复的,因为它指的是Android Studio和NDK的演变,另一个问题是指一个非常古老的Android Studio版本,因为我在NDK的帖子中有详细介绍支持在版本之间发生了巨大的变化而没有明确的方向,到目前为止已经发布了1.3
答案 0 :(得分:12)
Android Studio v1.3预览 - 我们正在发布新版Android 工作室。最值得注意的是我们的Android NDK 中要求很高的功能 &安培;游戏开发人员: C / C ++代码的代码编辑和调试。基于 JetBrains Clion平台,Android Studio NDK插件提供 C / C ++代码的重构和代码完成等功能 与您的Java代码一起。集成了Java和C / C ++代码支持 为Android应用程序免费提供一个开发体验 开发人员。 通过Canary频道更新到Android Studio v1.3 让我们知道你的想法。
来自Android开发者博客here的来源。
作为Android 1.3稳定版的一部分,我们加入了Early 访问预览的C ++编辑器&调试器支持与。配对 实验构建插件。请参阅Android C ++预览页面 有关如何入门的信息。支持更复杂的项目 和构建配置正在开发中。
引自android开发者博客here。
新增功能:
有关如何使用它的步骤,请查看here。
答案 1 :(得分:5)
我调用了命令行,不知道我从哪里得到它,它基本上是你的第一个选项,用手工ndk-build
恢复为android.mk
。如果您不想按产品风格控制ndk abiFilters,那就太好了。
apply plugin: 'com.android.library'
android {
compileSdkVersion rootProject.ext.compileSdkVersion
buildToolsVersion rootProject.ext.buildToolsVersion
defaultConfig {
minSdkVersion rootProject.ext.minSdkVersion
targetSdkVersion rootProject.ext.targetSdkVersion
ndk {
moduleName "glues"
}
}
sourceSets.main {
jniLibs.srcDir 'src/main/libs' //set .so files location to libs
jni.srcDirs = [] //disable automatic ndk-build call
}
task buildNative(type: Exec, description: 'Compile JNI source via NDK') {
def ndkDir = android.ndkDirectory
commandLine "$ndkDir/ndk-build",
'-C', file('src/main/jni').absolutePath, // Change src/main/jni the relative path to your jni source
'-j', Runtime.runtime.availableProcessors(),
'all',
'NDK_DEBUG=1'
}
task cleanNative(type: Exec, description: 'Clean JNI object files') {
def ndkDir = android.ndkDirectory
commandLine "$ndkDir/ndk-build",
'-C', file('src/main/jni').absolutePath, // Change src/main/jni the relative path to your jni source
'clean'
}
clean.dependsOn 'cleanNative'
tasks.withType(JavaCompile) {
compileTask -> compileTask.dependsOn buildNative
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
}
}
dependencies {
}
如果我在abiFilter
上设置productFlavors
:
productFlavors {
x86 {
ndk {
abiFilter "x86"
}
}
mips {
ndk {
abiFilter "mips"
}
}
armv7 {
ndk {
abiFilter "armeabi-v7a"
}
}
arm {
ndk {
abiFilter "armeabi"
}
}
fat
}
注意,较旧的gradle插件版本使用的是android.plugin.ndkFolder
而不是android.ndkDirectory
。有关详细信息,请参阅:http://tools.android.com/tech-docs/new-build-system/migrating-to-1-0-0
答案 2 :(得分:4)
自Android Studio 1.3起,NDK将完全受支持,包括本机调试。
答案 3 :(得分:0)
android.useDeprecatedNdk=true
你的gradle.properties中的