2012-02-13 11 views
9

मेरे पास एक एंड्रॉइड एनडीके प्रोजेक्ट है जिसका एनडीके भाग कमांड लाइन से ठीक है; मुझे शुद्ध जावा प्रोजेक्ट के रूप में ग्रहण के तहत संकलित सामान चलाने के साथ कोई समस्या नहीं थी। लेकिन मैंने इसे सी/सी ++ प्रोजेक्ट में बदल दिया और अब इसे भी चला नहीं सकता है।एक्लिप्स से झूठी त्रुटि: फंक्शन '__android_log_print' को हल नहीं किया जा सका (एंड्रॉइड, सीडीटी)

मैं पुस्तकालय बनाया गया है, "कंसोल" में देखता हूं, लेकिन ग्रहण मुझे बताता है कि मेरी परियोजना में त्रुटियां हैं और यह इसे नहीं चलाएगी। ( क्यों पृथ्वी पर? कोड है संकलित !!!)

मैं जोड़कर लापता प्रतीकों के साथ कुछ मुद्दों का समाधान कर लिया परियोजना संपत्तियों के लिए पथ शामिल हैं।

लेकिन मुझे अभी भी यह अजीब Function '__android_log_print' could not be resolved त्रुटि मिल रही है।

तो, दो सवाल:

  1. मैं कैसे इस त्रुटि से छुटकारा मिलता है? (इसे अनदेखा किया जा सकता है?)
  2. योजना बी: मैं इस मिश्रित सी/सी ++/जावा प्रोजेक्ट को शुद्ध जावा में कैसे परिवर्तित करूं?

= = =

पुनश्च "आप जहाज फोन के रूप में, तो यह करना होगा"। क्या वे सिर्फ आईडीई के लिए बेहतर नाम नहीं ढूंढ पाए, जैसे "ल्यूसिड कोडिंग"? (रेहटोरिक प्रश्न)

= = =

अद्यतन: ऐसा लगता है ग्रहण त्रुटियों की रिपोर्ट की तरह ही है कि यह देखता है फ़ाइलों के लिए है (यानि, आपको पता चलता है)। मैंने LOGD मैक्रो के साथ एक और फ़ाइल खोली है, और ग्रहण ने इसके लिए भी एक त्रुटि की सूचना दी है। मैंने सभी फाइल विंडो बंद कर दी हैं, बंद ग्रहण और एक .something फ़ाइल हटा दी गई है। उसके बाद, मैं आवेदन चलाने में सक्षम था। मुझे उस लॉगिंग मैक्रो के साथ स्रोत फ़ाइलों को खोलने का जोखिम नहीं था। (यही कारण है कि "स्पष्ट कोडिंग" से बहुत दूर ऐसा नहीं है, है?)

+0

यह भी देखें: ग्रहण के बजाय कोड :: ब्लॉक का उपयोग कैसे करें: http://stackoverflow.com/questions/9079592/need-a-simple-linux-c-ide- एंड्रॉइड-एनएनडी/9 668394 # 9 668394 – 18446744073709551615

उत्तर

1

अपने Android.mk फ़ाइल में, कृपया जोड़ने

LOCAL_LDLIBS := -llog -landroid 

__android_log_print, libc का हिस्सा नहीं है यह लॉग पुस्तकालय में है , इसलिए आपको स्पष्ट रूप से इसे जोड़ने के लिए घोषित करने की आवश्यकता है।

ध्यान दें कि सी या जावा पक्ष पर त्रुटियों की स्थिति में ग्रहण परियोजना को चलाने से इंकार कर देगा। इस मामले में, एक लिंकर त्रुटि है; कोड सफलतापूर्वक संकलन समाप्त नहीं हुआ था, इसलिए यह इसे नहीं चलाएगा।

+0

मैं _do_ '' -llog'' '' Android.mk'' में है, अन्यथा कमांड लाइन में एक लिंक त्रुटि होगी। बस अगर मैंने "पुस्तकालय" टैब पर सूची में liblog.so जोड़ा और "लाइब्रेरी पथ" टैब में ..arch-arm/usr/lib जोड़ा। मुझे अभी भी एक ही त्रुटि मिल रही है। ग्रहण उस परियोजना को चलाने के लिए नहीं चाहता है जिसका संकलन सफलतापूर्वक पूरा हो गया है। – 18446744073709551615

+0

मैं दोहराता हूं: _no लिंक error_ है। मैं _was_ इसे एक मिश्रित सी/जावा एक में परिवर्तित करने से पहले प्रोजेक्ट को चलाने में सक्षम हूं। – 18446744073709551615

2

इसे कैसे अनदेखा किया जा सकता है: 'समस्याएं' विंडो खोलें, सी/सी ++ फ़ाइलों में त्रुटियों का चयन करें और डेल कुंजी दबाएं। एक पुष्टिकरण संदेश बॉक्स दिखाया जाएगा, लेकिन उसके बाद आप अपने ऐप को डीबग कर सकते हैं ... अगली rebuild =) वैकल्पिक रूप से, जैसा कि आपने पहले उल्लेख किया था, आप बस सभी खुले सी/सी ++ फ़ाइलों को बंद कर सकते हैं।

+0

मैं ... errr ... इसे बंद कर दिया है। यह तब मदद नहीं करता था, लेकिन अब मुझे नहीं पता कि "समस्याएं" विंडो को फिर से कैसे खोलें। – 18446744073709551615

+0

इसे मिला: मेनू - विंडो - शो व्यू - समस्याएं। – 18446744073709551615

6

CDT इंडेक्सर के विन्यास को सक्षम करना होगा "सूचकांक अप्रयुक्त हेडर ..."

कैसे वहाँ पाने के: परियोजना> गुण> C/C++ जनरल> अनुक्रमणिका।

enter image description here

मेरे लिए त्रुटि से छुटकारा मिलता है।

+0

इसे मेरे लिए हल किया गया – mlipman

0

वैकल्पिक रूप से आप इन तारों को फिर से टाइप कर सकते हैं और ग्रहण को पुनरारंभ कर सकते हैं; ये सभी फिक्स्ड लंगड़ा लगता है हालांकि ...