2014-04-18 9 views
9

मेरे पास मूल कोड वाला एंड्रॉइड प्रोजेक्ट है। मैं ndk-build कमांड को बिना किसी त्रुटि या चेतावनियों के कॉल करके कमांड लाइन से देशी कोड बनाने में सक्षम हूं। लेकिन जब मैं इसे एडीटी में खोलता हूं तो यह निम्न त्रुटि दिखाता है।एंड्रॉइड एनडीके बिल्ड, विधि को हल नहीं किया जा सका

enter image description here

त्रुटि संदेश: Method CallStaticIntMethod could not be resolved. परियोजना में इसी तरह की त्रुटियों के साथ कई फाइलों रहे हैं।

मैंने दो बार कॉन्फ़िगरेशन की जांच की है और यहां मेरे पास है। एंड्रॉयड का निर्माण, उपकरण श्रृंखला और भी शामिल है ठीक से विन्यस्त कर रहे हैं (नीचे चित्र देखें)

enter image description here

enter image description here

enter image description here

आवश्यक शामिल भी परियोजना Explorer में दिखाई दे रहे हैं और वे वैध (खाली नहीं हैं और हेडर फ़ाइलों को सही करने के लिए इंगित करें)।

enter image description here

लेकिन जब मैं परियोजना और यह BuildClean, त्रुटियों अभी भी कर रहे हैं। कोई विचार कैसे इस को हल किया जा सकता है?

विन्यास: एडीटी 22.6.2, NDK r9d (64-बिट), OSX 10.9.2

उत्तर

11

कुछ प्राथमिकताओं के साथ संघर्ष करने के बाद, मुझे अंततः एक समाधान मिला। यह एनडीके प्लगइन में bug है जिसे एओएसपी को सूचित किया गया था लेकिन अभी तक तय नहीं किया गया है। उत्तर का एक अतीत टिप्पणी # 50 में वर्णित है। यहां अनुक्रम है जो हमारे लिए काम करता है।

  1. ओपन प्रोजेक्ट गुण ->C/C++ का निर्माण ->उपकरण चैन संपादक
  2. अनुभाग Used Tools में GCC C Compiler साथ Android GCC Compiler बदलें। यदि अनुभाग खाली है, तो वहां GCC C Compiler प्रविष्टि जोड़ें। enter image description here
  3. ओपन प्रोजेक्ट गुण ->C/C++ जनरल ->पथ और प्रतीकों और निर्देशिका जोड़ने के लिए, जहां शामिल होने के लिए अपने ज-फ़ाइलें स्थित हैं। का उपयोग करें बटन को अपने स्थानीय फ़ोल्डर में जोड़ने के लिए ऊपर जाएं (/AudioPlayer/jni मेरे मामले में) पहले स्थान पर। फिर प्लेटफॉर्म और टूलचेन्स जोड़ें। बिल्ट-इन में बहुत नीचे रहना चाहिए। enter image description here मेरे मामले में टूलचैन के पूर्ण पथ नीचे की तरह शामिल थे। ये मूल Android GCC Compiler टूलचेन के अंतर्निहित पथ हैं, जिन्हें हमने चरण 2 में बदल दिया है।

    /Tools/android-ndk/toolchains/arm-linux-androideabi-4.6/prebuilt/darwin-x86_64/lib/gcc/arm-linux-androideabi/4.6/include 
    /Tools/android-ndk/toolchains/arm-linux-androideabi-4.6/prebuilt/darwin-x86_64/lib/gcc/arm-linux-androideabi/4.6/include-fixed 
    
  4. प्रेस ठीक बटन, स्वच्छ और फिर से निर्माण परियोजना। सभी त्रुटियों को दूर जाना चाहिए। यदि वे रहते हैं, तो उन्हें समस्याओं को हटाने का प्रयास करें एक बार फिर से देखें और फिर से निर्माण करें।

अद्यतन: मैं एक और जगह है, आप फ़ाइलों को शामिल करने के लिए पथ में जोड़ सकते हैं जहां मिल गया है। हालांकि यह ग्रहण संस्करण निर्भर है। परियोजना सेटिंग्स -> सी/सी ++ सामान्य -> ​​प्रोसेसर पथ, मैक्रोज़ इत्यादि शामिल करें -> सीडीटी उपयोगकर्ता सेटिंग्स प्रविष्टियां -> जोड़ें। ऊपर सूचीबद्ध पथ जोड़े जाने के बाद, अब कोई संकलन समस्या नहीं है। विकास फिर से मजेदार है।

+1

मुझे चरण 1 और 2 करने की आवश्यकता नहीं थी, इसलिए शायद इसकी आवश्यकता नहीं थी। अन्यथा यह जवाब मेरे लिए अच्छा काम करता है। धन्यवाद। – haffax

+0

हाय, मैंने इस समाधान की कोशिश की है। सी कोड में मेरी सभी त्रुटियां चली गईं लेकिन परियोजना का नाम अभी भी त्रुटि प्रतीक दिखाता है और इसके कारण मैं प्रोजेक्ट चलाने में असमर्थ हूं। मुझे नहीं पता कि क्या गलत हो रहा है। कृपया –

0

हाँ, इसके आईडीई की वजह से नहीं जानने जहां अपने हेडर और किसी भी libs आप को पुन: लिंक के सभी कर रहे हैं। त्रुटियों को आईडीई की स्वतः पूर्ण/बग प्रणाली द्वारा उत्पन्न किया जाता है। आप या तो ग्रहण के भीतर अपने शामिल को ठीक कर सकते हैं या प्राथमिकताओं में त्रुटियों के रूप में उन्हें हटा सकते हैं।

-1

मैं एक ऐसी ही त्रुटि थी और> गुण> खोज विकल्प परियोजना के लिए जा रहा है और जीसीसी में कामयाब रहे निर्माण प्रणाली से खोज प्रोफ़ाइल को बदले एंड्रॉयड जीसीसी संकलक से जीसीसी सी संकलक करने के लिए परिवर्तित करने के बाद, और अद्यतन करने में शामिल हैं निर्देशिका से इसे हल ।

+0

का सुझाव दें 6 महीने पहले इस उत्तर को बेवकूफ के जवाब से अलग कैसे किया जा सकता है? यह भी "मुझे भी" जवाब देखें [एक "संरक्षित" प्रश्न क्या है?] (Http://meta.stackexchange.com/q/52764) – jww

+0

यह एक अलग समाधान है। Beworker का जवाब मेरे लिए काम नहीं किया था। अपने समाधान की कोशिश करने के बाद, मैंने खोज विकल्पों के तहत खोज प्रोफ़ाइल को बदलकर समस्या को ठीक किया। मुझे यकीन नहीं है कि क्या मेरे लिए समस्या को ठीक करने के लिए बेवकूफ के जवाब का कोई संबंध नहीं था, मैंने सोचा कि मैं उल्लेख करूंगा कि मैंने पहले ही अपने समाधान की कोशिश की थी, अगर दोनों कदम आवश्यक थे। –

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