2013-04-08 10 views
40

मुझे cgos2d-x प्रोजेक्ट को सिग्विन के साथ संकलित करते समय निम्न चेतावनी मिल रही है।एंड्रॉइड एनडीके: चेतावनी: APP_PLATFORM एंड्रॉइड -9 एंड्रॉइड से बड़ा है: minSdkVersion 8

`/cygdrive/e/project/MyGame/proj.android ` 
/cygdrive/e/android-ndk-r8e/build/core/add-application.mk:128: Android NDK: WARNING:APP_PLATFORM android-9 is larger than android:minSdkVersion 8 in ./AndroidManifest.xml 

मैं एनडीके संस्करण r8e का उपयोग कर रहा हूं। मेरा न्यूनतम SDK संस्करण 8 मेरे AndroidManifest.xml में है, लेकिन मैं APP_PLATFORM को कहीं भी एंड्रॉइड -9 के रूप में निर्दिष्ट नहीं करता हूं। मैं इसे 8 में कैसे बदल सकता हूं।

क्या कोई मुझे बता सकता है कि इस चेतावनी को कैसे हल किया जाए क्योंकि मुझे लगता है कि इससे समस्याएं हो सकती हैं।

+0

क्या एसडीके संस्करण प्रयोग कर रहे है? – Robin

+0

Fwiw, यह NDK r9 में तय हो गई है _something_ की –

+0

संभावित डुप्लिकेट [कैसे NDK संकलक चेतावनी से छुटकारा: "एपीपी \ _PLATFORM बड़ा है .." और "अमान्य पैकेज"] (http://stackoverflow.com/questions/15739409/कैसे-मिल-छुटकारा के- NDK-संकलक चेतावनी एप्लिकेशन के मंच-है-बड़ा और अमान्य-पीएसी)। यह भी देखें [चेतावनी: APP_PLATFORM एंड्रॉइड -14 एंड्रॉइड से बड़ा है: minhdkVersion /home/user/MyApp/AndroidManifest.xml] (http://stackoverflow.com/q/21087904/608639) में। – jww

उत्तर

60

यह है कि आप क्रम के रूप में एंड्रॉयड-9 का उपयोग कर रहे है। आप अपने Application.mk फ़ाइल में APP_PLATFORM := android-8 डाल सकते हैं और चेतावनी गायब हो जाएगा।

+0

क्या इसका कोई प्रभाव पड़ता है? – radj

+1

अच्छा, आपको यह सुनिश्चित करना होगा कि आपका मूल कोड इस बाधा को पूरा करेगा, उदा। दिए गए मंच पर काम करता है। –

+0

धन्यवाद, जो मेरी समस्या हल करता है। – Sean

13

चेतावनी/त्रुटि के पीछे कारण यह है कि यह आपको यह बताना चाहता है कि यह आपके "न्यूनतम" मेनिफेस्ट में वर्णित लक्ष्य प्लेटफ़ॉर्म के लिए मूल प्लेटफ़ॉर्म के लिए मूल कोड संकलित कर रहा है। यह मूल रूप से कह रहा है 'पुराने ओएस पर समर्थित सुविधाओं का उपयोग करने के बारे में सावधान रहें। Application.mk परिवर्तन ठीक है और संकलित कोड पर कोई वास्तविक प्रतिकूल प्रभाव नहीं पड़ता है।

~~ वैकल्पिक समाधान।

आर 8 के लिए आप बिल्ड सेटिंग्स को एक त्रुटि के बजाय चेतावनी मानने के लिए बदल सकते हैं। यह आर 8 में काम किया लेकिन आर 9 में केवल आंशिक फिक्स है।

NDK राजस्व r9 के लिए (दूसरों में काम करता है भी revs लेकिन स्थान/लाइन # भिन्न हो सकती है)

$ {NDK} /build/core/add-application.mk लाइन 138

ऐड "#" लाइन की शुरुआत में।

एक चरित्र, 30 सेकंड ठीक ... डिबग मूल कोड जाना

# $ ($ में minSdkVersion $ (APP_MIN_PLATFORM_LEVEL) (APP_MANIFEST) फोन __ndk_info, चेतावनी:: APP_PLATFORM $ (APP_PLATFORM) एंड्रॉयड से भी बड़ा है) ।

1

यदि आप अपने मूल पुस्तकालय को अपने minSdkVersion की तुलना में एक नए संस्करण के लिए संकलित करना चाहते हैं, तो आप त्रुटि को एक चेतावनी में बदलने के लिए ग्रहण को कॉन्फ़िगर कर सकते हैं। यह उपयोगी हो सकता है यदि आप जानते हैं कि आपका जावा कोड एंड्रॉइड के पुराने संस्करणों में देशी लाइब्रेरी लोड नहीं करेगा। (चेतावनी: अगर आप इस बात की गारंटी नहीं है, तो क्या आपके APP_PLATFORM में निर्दिष्ट है असफल और एप्लिकेशन दुर्घटना अगर वहाँ असंतुष्ट गतिशील पुस्तकालय लिंक हैं कर सकते हैं की तुलना में पुराने Android के संस्करणों पर अपनी मूल पुस्तकालय लोड हो रहा है - जैसे यदि आपका APP_PLATFORM 9 है और आप का उपयोग ओपनएसएलएस, यदि आप एंड्रॉइड 2.2 या उससे पहले के जेएनआई का उपयोग करने का प्रयास करते हैं तो यह असफल हो जाएगा। लेकिन जब तक आपकी जावा पक्ष इस बारे में जानता है और यह सुनिश्चित करता है कि लोड लाइब्रेरी पुराने संस्करणों पर कभी नहीं बुलाया जाता है, तो आप ठीक हैं।)

आप इन चरणों का, (this link पर) गूगल से एक किसी द्वारा प्रदान का पालन करके ग्रहण सेटिंग्स बदल सकते हैं (लेकिन यह भी, मेरे महत्वपूर्ण नोट नीचे देखें):

ग्रहण में:

- Window -> Preferences -> C/C++ -> Build -> Settings 
- Select CDT GNU C/C++ Error Parser 
- In the Error Parser options at the bottom, add a new entry with the following contents: 

Severity: Warning 
Pattern: (.*?):(\d+): Android NDK: WARNING:(.*) 
File: $1 
Line: $2 
Description: $3 

महत्वपूर्ण! क्या गूगल पुरुष ध्यान दें नहीं था कि आप भी क्योंकि अन्यथा कुछ अन्य अधिक सामान्य नियम यह ढक शीर्ष करने के लिए अपना नया नियम स्थानांतरित करने के लिए सेटिंग्स में "ऊपर ले जाएँ" बटन का उपयोग करने की जरूरत है और यह काम नहीं करता है।

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