Android Studio“当前NDK支持已弃用”

截至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版本,因为我在post中详细介绍了NDK支持从版本到版本的急剧变化一个明确的方向,到目前为止已发布1.3

来自Google I / O 2015的更新

Android Studio v1.3预览版 – 我们正在发布新版Android Studio。 最引人注目的是我们的Android NDK和游戏开发人员要求的function: C / C ++代码的代码编辑和调试 。 Android Studio NDK插件基于JetBrains Clion平台,提供诸如C / C ++代码的重构和代码完成等function以及Java代码。 Java和C / C ++代码支持已集成到Android应用程序开发人员免费的一个开发体验中。 通过Canary频道更新到Android Studio v1.3 ,让我们知道您的想法。

来自android开发者博客的来源。


2015年3月30日新增function – > Android Studio v1.3发布

作为Android 1.3稳定版的一部分,我们提供了C ++编辑器和调试器支持的早期访问预览,并配有实验性构建插件。 有关如何入门的信息,请参阅Android C ++预览页面。 正在开发支持更复杂的项目和构建配置。 在此处输入图像描述

这里引用Android开发者博客。

新增function

  • 代码完成
  • 代码导航(转到声明,在标题和实现之间跳转等)
  • 快速修复
  • 意向
  • 重构
  • 来源格式
  • 调试

有关如何使用它的步骤,请查看此处 。

我调用命令行,不知道我从哪里得到它,它基本上是你的第一个选项,用手工制作的android.mk恢复到ndk-build 。 如果您不想按产品风味控制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 { } 

如果我在productFlavors上设置abiFilter ,我只会看到这些警告:

 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

从Android Studio 1.3开始,NDK将得到完全支持,包括本机调试。

 android.useDeprecatedNdk=true 

在你的gradle.properties中