Android Gradle Plugin 1.1.0 - 找不到getNdkFolder(),有什么替代品吗?

Jab*_*iyo 10 android android-ndk android-build android-studio android-gradle-plugin

我刚刚从1.0.0更新了Android Gradle插件到1.1.0,我收到了这个错误:

没有方法签名:com.android.build.gradle.LibraryPlugin.getNdkFolder()适用于参数类型:()值:[]

我试图找到gradle插件1.0.0到1.1.0的差异,但无法在网上找到任何地方.

似乎getNdkFolder方法已被更改或删除.

有替代品吗?或者任何其他方式获得NdkFolder?

我正在使用这样的方法,

def ndkDir = project.plugins.findPlugin('com.android.library').getNdkFolder()

我还针对Android问题跟踪器中的工具团队提出了问题:https://code.google.com/p/android/issues/detail? id = 152810

谢谢 !

Mic*_*rdo 20

你可以这样得到它:

plugins.getPlugin('com.android.library').sdkHandler.getNdkFolder()
Run Code Online (Sandbox Code Playgroud)

  • 这似乎在Android Studio 2.3中不再有效.请参阅@ Cameron的解决方案. (4认同)

Cam*_*mer 8

正确的方法 - android.ndkDirectory

从更改android.plugin.ndkFolder到的更改android.ndkDirectory记录在技术文档Migrating Gradle Projects中,版本为1.0.0.另外你应该将你的android插件更新到2.3.0.

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.3.0'
    }
}
Run Code Online (Sandbox Code Playgroud)

sdkFolder是内部的,可能会像ndkFolder停止工作一样停止工作.

关于实验分支

搜索周围,插件已经足够成熟,你很难找到使用NDK实验分支的理由.

有一些关于插件破坏的实验版本的讨论,ndkDirectory这是在1.1之后访问该值的记录方式.如果在发布的版本中发生了变化,我会更新我的答案,同时如果运行实验性插件是你的事情,你可以使用@Alex Cohn的答案破解这个bug /功能.

  • 事实上,所有的学分应该转到[Riccardo Ciovati](http://stackoverflow.com/users/321354/riccardo-ciovati):*[我如何阅读build.gradle中local.properties中定义的属性]( http://stackoverflow.com/a/22012018/192373)* (2认同)