我使用此方法获取NDK目录:
project.plugins.findPlugin('com.android.library').sdkHandler.getNdkFolder()
更新com.android.tools.build:gradle
到2.3
字段sdkHandler
似乎已在删除后重命名
错误:没有这样的属性:类的sdkHandler:com.android.build.gradle.LibraryPlugin
是否有另一种方法可以在库模块中获取NDK目录路径?
答案 0 :(得分:10)
此方法现在将返回NDK的完整路径:
project.android.ndkDirectory.absolutePath
答案 1 :(得分:1)
对我来说,解决方法是简单地设置ANDROID_NDK
环境变量。
更多here。
答案 2 :(得分:0)
我做了一些挖掘工作。似乎该字段仍然存在但标记为私有。
一种解决方案是使用反射。
该字段位于com.android.build.gradle.BasePlugin
继承com.android.build.gradle.LibraryPlugin
。
LibraryPlugin plugin = project.plugins.findPlugin('com.android.library')
Class<?> clazz = plugin.getClass().getSuperclass();
Field field = clazz.getDeclaredField('sdkHandler')
field.setAccessible(true)
SdkHandler sdkHandler = field.get(plugin)
System.out.println("Ndk location: " + sdkHandler.getNdkFolder())
说实话,我真的不喜欢这个解决方案。我希望找到一个更好的。
答案 3 :(得分:-2)
只需将您的gradle版本降级为2.2.3。它会解决问题