Ответ 1
Теперь этот метод вернет полный путь NDK:
project.android.ndkDirectory.absolutePath
Я использовал этот метод для получения каталога NDK:
project.plugins.findPlugin('com.android.library').sdkHandler.getNdkFolder()
Обновление Ater com.android.tools.build:gradle
до 2.3
Поле sdkHandler
похоже, было переименовано в удаленном
Ошибка: нет такого свойства: sdkHandler для класса: com.android.build.gradle.LibraryPlugin
Есть ли альтернативный способ получить путь к каталогу NDK в библиотечном модуле?
Теперь этот метод вернет полный путь NDK:
project.android.ndkDirectory.absolutePath
Для меня исправить было просто установить переменную среды ANDROID_NDK
.
Подробнее здесь.
Я сделал кое-что. Кажется, что поле все еще там, но отмечено как личное.
Одним из решений было бы использовать отражение.
Поле находится в 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())
Честно говоря, мне не очень нравится это решение. Я надеюсь найти лучшего.
Просто снимите версию gradle до версии 2.2.3. он решит проблему