2015-12-19 10 views
7

एंड्रॉयड NDK के लिए दस्तावेज़, निम्नलिखित बयान मौजूद है:Android.mk कहां होना चाहिए?

Android.mk फ़ाइल अपने प्रोजेक्ट की JNI/निर्देशिका की एक उपनिर्देशिका में रहता है [...] http://developer.android.com/ndk/guides/android_mk.html

मैं इस से व्याख्या कर सकते हैं कि Android.mk फ़ाइल [project_path]/jni/[module_name]/Android.mk में रखी जानी चाहिए, प्रत्येक मॉड्यूल में अपनी विशिष्ट Android.mk फ़ाइल है क्योंकि यह एप्लिकेशन Application.mk फ़ाइल से अलग है, लेकिन जब मैं ndk-build निष्पादित करता हूं तो मुझे अनुयायी मिलता है कारण त्रुटि संदेश:

एंड्रॉयड NDK: कोई Android.mk ./jni
एंड्रॉयड NDK के तहत नहीं है: यदि यह जानबूझकर है
एंड्रॉयड NDK बात करने के लिए APP_BUILD_SCRIPT को परिभाषित करें: एक वैध NDK के लिए स्क्रिप्ट का निर्माण।

मैं से है कि मैं अपने Application.mk फ़ाइल के साथ एक एकल Android.mk फ़ाइल बनाने या एक ही Android.mk फ़ाइल को इंगित करने Application.mk में APP_BUILD_SCRIPT को परिभाषित करना चाहिए इकट्ठा होते हैं। यह प्रलेखन का विरोध करता है और मुझे आश्चर्य करता है कि Android.mk में कई मेकफ़ाइल की आवश्यकता क्यों है, वैसे भी सभी मॉड्यूल के लिए परिभाषाएं होंगी-जो कि Application.mk में भी रखी जा सकती है।

मुझे पता चला है कि, वास्तव में, Android.mk फ़ाइल Application.mk रूप में एक ही निर्देशिका में है और उन पर ndk-build को क्रियान्वित करने के लिए काम करने लगता है NDK नमूना परियोजनाओं के एक जोड़े पढ़ना।

क्या गुम है?

उत्तर

0

मैं कम से कम आपके कुछ प्रश्नों का उत्तर दे सकता हूं। आप दस्तावेज़ों के बारे में थोड़ा उलझन में हैं। यदि आप एक देशी मॉड्यूल का उपयोग कर रहे हैं, तो वास्तव में application.mk अनावश्यक प्रतीत हो सकता है - लेकिन, कुछ ऐसी चीजें हैं जिन्हें केवल एप्लिकेशन.एमके द्वारा सेट किया जा सकता है (आप यहां देख सकते हैं: Application.mk)। Application.mk उन सेटिंग्स के लिए है जो सभी मॉड्यूल के लिए लागू होते हैं, जबकि Android.mk विशिष्ट मॉड्यूल सेटिंग्स के लिए है। दरअसल, आमतौर पर सरल परियोजनाओं में एक एंड्रॉइड.एमके होता है और यह उसी फ़ोल्डर पर रहता है जैसे एप्लिकेशन.एमके।

आप यह कह सकते हैं कि उन्हें कहां रखा जाए, यह भी निर्भर करता है कि आप अपना कोड कैसे बनाते हैं - उदाहरण के लिए, यदि आप 'ndk-build' और कमांडलाइन कमांड का उपयोग करके ndk बनाने के लिए कोई कार्य का उपयोग कर रहे हैं, तो आप फ़ोल्डर पथ को एक के रूप में पास करते हैं तर्क। आमतौर पर, मेरे अनुभव के अनुसार, वे jni फ़ोल्डर के नीचे रहते हैं।

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