android - एंड्रॉइड समर्थन लाइब्रेरी मेरे। एपीके में क्यों नहीं जोड़ा गया है?




ant build android-ndk (5)

मैं कंसोल पर मेक / चींटी का उपयोग करते हुए विंडोज पर हेडगेवार के एंड्रॉइड पोर्ट को बनाने का प्रयास कर रहा हूं। कुछ मुकदमेबाजी और त्रुटि के बाद मैंने पूरी बिल्ड प्रक्रिया को पूरा करने में कामयाब रहा, लेकिन बनाया गया अनुप्रयोग प्रारंभ नहीं होगा। तर्कसंगत कारण बताता है कि एंड्रॉइड सपोर्ट लाइब्रेरी की कक्षाएं गायब हैं

हालांकि, लाइब्रेरी (android-support-v13.jar) एंड्रॉइड प्रोजेक्ट की "लिब्स" निर्देशिका में मौजूद है, और यह स्पष्ट रूप से निर्माण के दौरान उपयोग किए जाने से उपयोग किया जाता है क्योंकि जावा स्रोतों को संकलित करते समय त्रुटियों का कारण होगा। मैंने classes.dex फ़ाइल की जाँच की है जहां पुस्तकालय कक्षाओं को जोड़ा जाना चाहिए (जहाँ तक मुझे समझ में आ रहा है), और वे वहां नहीं दिखते हैं।

तो, क्या कारण हो सकता है कि समर्थन लाइब्रेरी .apk में शामिल नहीं है? लिबी / अरमेबी में अन्य (मूल) पुस्तकालयों को शामिल किया जा रहा है। बिल्ड को sdk.dir का उपयोग करके sdk.dir साथ किया जाता है, जो मूल रूप से बस sdk.dir और target (android-13) को सेट करता है, फिर ${sdk.dir}/tools/ant/build.xml आयात करता है

स्पष्ट करने के लिए, मुझे पता है कि ग्रहण के साथ काम करने का काम कैसे करना है सवाल यह है कि सामान्य चींटी का निर्माण लाइब्रेरी को जोड़ने में विफल रहता है, और यह कैसे तय किया जा सकता है।

यहां परियोजना निर्देशिका (टिप्पणी के बिना) में build.xml है:

<?xml version="1.0" encoding="UTF-8"?>
<project name="MainActivity" default="help">
    <loadproperties srcFile="local.properties" />
    <property file="ant.properties" />
    <loadproperties srcFile="project.properties" />
    <fail
            message="sdk.dir is missing. Make sure to generate local.properties using 'android update project'"
            unless="sdk.dir"
    />
    <import file="${sdk.dir}/tools/ant/build.xml" />
</project>

local.properties sdk.dir को परिभाषित करता है, project.properties लक्ष्य को परिभाषित करता है, ant.properties खाली है

अद्यतन: ओह, बेशक, मैंने नवीनतम संस्करण (ndk8, sdk19) में हर चीज को अपडेट किया, अच्छा उपाय के लिए हेडगेवार रिपॉजिटरी से खींच लिया, और अब यह काम करता है। कोई फर्क नहीं पड़ता कि क्या वास्तव में अंतर बना है, दुर्भाग्य से। मुझे लगता है कि इसका मतलब है कि दान के लिए सबसे अच्छा उम्मीदवार निक है, लेकिन उसने इसे उचित उत्तर नहीं दिया। टिप्पणियों में सुझाव


Answers

एक्लिप्स में, प्रोजेक्ट गुणों पर जाएं और Order and export टैब चुनें। आवश्यक पुस्तकालयों और साफ बिल्ड की जांच करें

उम्मीद है की वो मदद करदे!


शायद आपके पास वी 4 / वी 13 के साथ कुछ संघर्ष है?

एंड्रॉइड-समर्थन- v4.jar और एंड्रॉइड-समर्थन- v13.jar के लिए विशेष केस।

हम इन दो पुस्तकालयों के लिए एक विशेष मामला बनाते हैं क्योंकि- v13 में -4 का एक पूर्ण संस्करण है। यदि दोनों पाए जाते हैं, तो केवल- v13 का उपयोग किया जाएगा

ध्यान दें कि हम गारंटी नहीं दे सकते कि-वी 4 के अंदर- v13 में संस्करण के समान है> दूसरे पुस्तकालयों द्वारा। हम अनुशंसा करते हैं कि जब आप अपनी प्रोजेक्ट को नए संस्करण> सहायता लाइब्रेरी के साथ अपडेट करते हैं, तो आप एक ही समय में अपनी सभी परियोजनाओं को अपडेट करते हैं, चाहे वे -> v4 या -v13 का उपयोग करें

[स्रोत]


यह पता चला है कि यह एंड्रॉइड एसडीके में एक बग था। आर 18 के रिलीज नोट्स कहते हैं:

फिक्स्ड चींटी मुद्दों जहां कुछ मामलों में लीब / फ़ोल्डर में कुछ जार पुस्तकालय नहीं उठाए जाते हैं।

चूंकि r17 से r19 से अद्यतन करने के लिए मेरे लिए समस्या ठीक है, यह समस्या की वजह से बहुत संभावना थी। निकट के लिए धन्यवाद, जिसकी टिप्पणी ने मुझे सही दिशा में बताया, भले ही यह सिर्फ एक स्पष्टीकरण प्रश्न था


ठीक है, SDK टूल के नवीनतम संस्करण को अपडेट करने का प्रयास करें


Google के पास अब एक विज्ञापन आईडी है
इसका भी उपयोग किया जा सकता है, लेकिन ध्यान दें कि:

विज्ञापन आईडी उपयोगकर्ता-विशिष्ट, अद्वितीय, रीसेट करने योग्य आईडी है

तथा

उपयोगकर्ताओं को Google Play ऐप्स के भीतर अपने पहचानकर्ता को रीसेट करने या रुचि-आधारित विज्ञापनों से ऑप्ट आउट करने में सक्षम बनाता है।

हालांकि यह आईडी बदल सकती है, ऐसा लगता है कि जल्द ही हमारे पास कोई विकल्प नहीं हो सकता है , इस आईडी के उद्देश्य पर निर्भर करता है।

http://developer.android.com/google/play-services/id.html

यहां कॉपी-पेस्ट कोड

HTH





android ant build android-ndk