में ग्राडल कार्य ऑर्डरिंग समस्या मैं एंड्रॉइड स्टूडियो 2.2 बीटा 3 का उपयोग कर रहा हूं और मेरी टेस्ट प्रोजेक्ट एक हाइब्रिड सी ++ और जावा ऐप बनाने के लिए सीएमके का उपयोग करती है। जेएनआई इंटरफेस एसडब्ल्यूआईजी द्वारा उत्पन्न होता है। इसका मतलब है कि मैं बाहरीनेटबिल्ड और जावाकंपाइल ग्रेडल कार्यों से पहले SWIG रैपर उत्पन्न करना चाहता हूं; यानी मेरा CMakeLists.txt SWIG द्वारा उत्पन्न सीपीपी रैपर फ़ाइल निर्दिष्ट करता है और मेरा जावा कोड SWIG द्वारा जेनरेट की गई जावा रैपर फ़ाइलों को आयात करता है।एंड्रॉइड स्टूडियो
सुनिश्चित करने के लिए बड़ा घूँट चलाया जाता है और किसी भी कार्य करने से पहले आवश्यक आवरण फ़ाइलें उत्पन्न करता है, मैं अपने ऐप/build.gradle फ़ाइल
project.afterEvaluate {
preBuild.dependsOn("runSwig")
}
में निम्नलिखित जब मैं कमांड
का उपयोग कर कमांडलाइन से चलाने निर्दिष्ट करता है./gradlew assembleDebug
मैं किसी भी मुद्दे का सामना नहीं करते हैं और उम्मीद के रूप में मेरे काम "runSwig" अन्य कार्यों में से किसी से पहले चलाता
:app:runSwig
:app:preBuild
:app:preDebugBuild
<blah blah more tasks>
:app:externalNativeBuildDebug
लेकिन मुद्दा जब परियोजना पहले एंड्रॉयड स्टूडियो में खोला जाता है यह लग रहा है बाहरी देशी निर्माण की तरह runSwig से पहले लागू किया जाता है, और मैं
CMake Error at CMakeLists.txt:79 (add_library):
Cannot find source file:
../../../wrap.cxx
Tried extensions .c .C .c++ .cc .cpp .cxx .m .M .mm .h .hh .h++ .hm .hpp
.hxx .in .txx
FAILURE: Build failed with an exception.
त्रुटि मैं जब तक नहीं होती या तो आदेश का उपयोग कर इकट्ठा त्रुटि मिलती है लाइन या, मेरे CMakeLists.txt से wrap.cxx फ़ाइल को हटा दें और कम से कम एक बार सफलतापूर्वक चलाने के बाद इसे फिर से जोड़ें।