2017-03-07 4 views
6

मैं इस पद्धति का उपयोग किया गया था NDK निर्देशिका पाने के लिए निर्माण करने के लिए अद्यतन करने के बाद:LibraryPlugin में कोई sdkHandler क्षेत्र उपकरण 2.3.0

project.plugins.findPlugin('com.android.library').sdkHandler.getNdkFolder() 

अटेर 2.3 क्षेत्र sdkHandler लगता है पर अपडेट करने के com.android.tools.build:gradle हटाया पर नाम दिया गया है,

Error:No such property: sdkHandler for class: com.android.build.gradle.LibraryPlugin

क्या लाइब्रेरी मॉड्यूल में एनडीके निर्देशिका पथ प्राप्त करने का कोई वैकल्पिक तरीका है?

उत्तर

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()) 

ईमानदार होने के लिए मुझे वास्तव में यह समाधान पसंद नहीं है। मुझे एक बेहतर खोजना है।

project.android.ndkDirectory.absolutePath 
7

इस विधि अब NDK का पूरा पथ वापस आ जाएगी। अधिक here

+0

एक आकर्षण की तरह काम करता है :) – TacB0sS

1

मेरे लिए ठीक बस ANDROID_NDK वातावरण चर सेट करने के लिए किया गया था:

-1

बस अपने ग्रेडल संस्करण को 2.2.3 पर डाउनग्रेड करें। यह समस्या को हल करेगा

+0

लॉल दोस्त। क्या आपने कम से कम प्रश्न पढ़ा है? –

+0

यह मेरे लिए काम किया –

संबंधित मुद्दे