दिलचस्प पोस्ट
उपयोगकर्ता को एक सुरक्षित तरीके से कुछ HTML- स्वरूपित डेटा पोस्ट करने की संभावना कैसे लागू करें? एवीएक्स सीपीयू निर्देशों का प्रयोग करना: "/ आर्क: एवीएक्स" के बिना खराब प्रदर्शन एंड्रॉइड – वेबव्यू में स्थानीय चित्र मॉड्यूल लोड हो रहा है त्रुटियों को पकड़ने और उन्हें प्रसंस्करण ObjectiveC में NSDictionary ऑब्जेक्ट से यूआरएल क्वेरी पैरामीटर बनाना ऑब्जेक्ट और कैमरे के बीच की दूरी जानने के लिए, किसी छवि से वास्तविक वस्तु का आकार कैसे प्राप्त करें? पॉपअप Window – जब बाहर क्लिक किया तो ख़ारिज करें किसी भी वर्ण से मिलान करने के लिए नियमित अभिव्यक्ति 10 बार से अधिक दोहराई जा रही है jquery / javascript: function (e) {… क्या है ई? यह क्यों जरूरी है? यह वास्तव में क्या करता है / पूरा करता है? हाइलाइट त्रुटि सेल या इनपुट जब सत्यापन jqgrid में विफल हो जाता है मिलीसेकंड में विधि का निष्पादन समय कैसे लॉग करना है? C ++ 11 को C99 के रूप में नामित initializer सूचियों का समर्थन क्यों नहीं करता है? क्या अच्छा जावा है, शाप की तरह, टर्मिनल अनुप्रयोगों के लिए पुस्तकालय? .append (), प्रीपेड (), .after () और .before () आईओएस रन कोड एक बार एक दिन

एंड्रॉइड प्रोजेक्ट में थ्रीटीएपीपी का उपयोग कैसे करें

मैं यह सवाल जोड़ रहा हूं क्योंकि मैं जावा और एंड्रॉइड के लिए नया हूँ और मैंने यह पता लगाने में घंटों के लिए खोज की है। जवाब संबंधित उत्तरों के संयोजन से आया था, इसलिए मुझे लगा कि मैं उस दस्तावेज़ को लिखता हूं जो मैंने संघर्ष किया हो सकता है और किसी और के लिए सीखा है। उत्तर देखो।

थोड़ी पृष्ठभूमि के लिए, मेरा अनुभव ज्यादातर PHP में है और रूबी का थोड़ा सा है। मेरी एकमात्र ओएस लिनक्स (उबंटू स्टूडियो) है, और मैं एंड्रॉइड स्टूडियो 2.1.2 में अपना पहला एंड्रॉइड ऐप्लीकेशन विकसित कर रहा हूं। मेरा जावा सेटअप निम्न है:

>java -version > openjdk version "1.8.0_91" > OpenJDK Runtime Environment (build 1.8.0_91-8u91-b14-3ubuntu1~15.10.1-b14) > OpenJDK 64-Bit Server VM (build 25.91-b14, mixed mode) 

Solutions Collecting From Web of "एंड्रॉइड प्रोजेक्ट में थ्रीटीएपीपी का उपयोग कैसे करें"

पहली डिस्कवरी: आपको java.time टाइम बैकपोर्ट, या यहां तक ​​कि जोडा-टाइम के बजाय तीन टाएंबिप का प्रयोग क्यों करना है

यह एक नया मानक परिभाषित करने की बहुत लंबी प्रक्रिया का एक बहुत ही छोटा संस्करण है ये सभी संकुल बहुत ज्यादा समान हैं: पुस्तकालय जो जावा के लिए अच्छे, आधुनिक समय से निपटने की सुविधा प्रदान करते हैं। मतभेद सूक्ष्म लेकिन महत्वपूर्ण हैं

सबसे स्पष्ट समाधान java.timejava.time में अंतर्निहित उपयोग करना होगा, क्योंकि यह जावा में समय और तिथियों से निपटने का नया मानक तरीका है। यह JSR-310 का कार्यान्वयन है, जो जोडा-टाइम पुस्तकालय के आधार पर समय से निपटने के लिए एक नया मानक प्रस्ताव था।

हालांकि, java.time जावा 8 में पेश किया गया था। मार्शमॉलो तक एंड्रॉइड 7 जावा ("एंड्रॉइड एन" जावा 8 भाषा सुविधाओं को पेश करने वाला पहला संस्करण है) पर चलता है। इस प्रकार, जब तक आप केवल एंड्रॉइड एन और इसके बाद के संस्करण को लक्षित नहीं करते हैं, आप जावा 8 भाषा सुविधाओं पर भरोसा नहीं कर सकते (मुझे यकीन नहीं है कि यह 100% सच है, लेकिन मैं इसे समझता हूं)। इसलिए java.time । समय बाहर है

अगले विकल्प Joda-Time हो सकता है, क्योंकि JSR-310 Joda-Time पर आधारित था। हालांकि, जैसा कि थ्रीटीएपीपी रीमेम इंगित करता है, कई कारणों से, जोडा-टाइम सबसे अच्छा विकल्प नहीं है।

अगला है तीन टन बैकपोर्ट, जावा 8 जावा। java.time पैकेज का (अपूर्ण) बैकपोर्ट, जावा 7 में। यह अधिकांश उपयोग के मामलों के लिए ठीक है, लेकिन, जैसा कि थ्रीटैप रीडमे में दर्शाया गया है, इसमें एंड्रॉइड के साथ प्रदर्शन समस्याएं हैं

तो आखिरी और प्रतीत होता है सही विकल्प 3TenABP है

दूसरी खोज: निर्माण उपकरण और निर्भरता प्रबंधन

एक कार्यक्रम संकलित करने से – विशेष रूप से बाहरी पुस्तकालयों के एक समूह का उपयोग करते हुए – जटिल है, जावा लगभग हमेशा प्रक्रिया का प्रबंधन करने के लिए एक "बिल्ड टूल" का उपयोग करता है। बनाओ, अपाचे चींटी, अपाचे मेवेन, और ग्रैड सभी उपकरण का निर्माण कर रहे हैं जो जावा प्रोग्राम्स के साथ उपयोग किए जाते हैं ( इस पोस्ट को तुलना के लिए देखें)। जैसा कि आगे नीचे बताया गया है, Gradle एंड्रॉइड प्रोजेक्ट्स के लिए चुना गया निर्माण उपकरण है।

इन निर्माण उपकरणों में निर्भरता प्रबंधन शामिल हैं अपाचे मेवेन एक केंद्रीय पैकेज रिपॉजिटरी को शामिल करने वाला पहला प्रतीत होता है। मावेन ने मेवेन सेंट्रल रिपॉजिटरी की शुरुआत की, जो कि पीपीपी के composer साथ कार्यात्मकता को रूकेगाम्स.org के साथ पैकैजिस्ट और रूबी के gem की अनुमति देता है। दूसरे शब्दों में, मेवेन सेंट्रल रिपॉजिटरी मैवेन (और ग्रेडल) के लिए है जो पैकेजैस्ट को संगीतकार के लिए है – संस्करणबद्ध पैकेजों के लिए एक निश्चित और सुरक्षित स्रोत।

तीसरी डिस्कवरी: एंड्रॉइड प्रोजेक्ट्स में ग्रैडल हैंडल्स डिपेंडेंसीज़

मेरी टू-डू सूची पर उच्चतर यहां ग्रैडल डॉक्स पढ़ना है , जिनमें उनके मुफ्त ईपुस्तक भी शामिल हैं। क्या मैंने इन हफ्ते पहले पढ़ा था जब मैंने एंड्रॉइड सीखना शुरू कर दिया था, मुझे निश्चित ही पता होगा कि ग्रेडड एंड्रॉइड प्रोजेक्ट्स में निर्भरता का प्रबंधन करने के लिए मैवेन सेंट्रल रिपॉजिटरी का इस्तेमाल कर सकते हैं। इसके अलावा, एंड्रॉइड स्टूडियो 0.8.9 के रूप में इस स्टैक ओव्हरफ्लो जवाब में विस्तृत बताया गया है, ग्रेड इनवेस्टमेंट मेवेन सेंट्रल रिपॉजिटरी का उपयोग करता है, जिसका अर्थ है कि आपको रेपो की स्थापना के लिए कोई अतिरिक्त कॉन्फ़िग नहीं करना है – आप बस निर्भरता की सूची

चौथा डिस्कवरी: प्रोजेक्ट निर्भरताएं [प्रोजेक्ट डायर] /app/build.gradle में सूचीबद्ध हैं

फिर, उन लोगों के लिए स्पष्ट है जिनको जावा में ग्रेडल का उपयोग करने का कोई अनुभव है, लेकिन मुझे यह पता लगाने में कुछ देर लग गई। यदि आप लोगों को कह रहे हैं "ओह, तो बस" compile 'this-or-that.jar' "को compile , या कुछ इसी तरह जानें, कि compile उस बिल्ड में एक निर्देश है। ग्रैडल फ़ाइल जो संकलन-समय निर्भरता दर्शाती है यहां निर्भरता प्रबंधन पर आधिकारिक ग्रेड पृष्ठ है।

पांचवें डिस्कवरी: थ्री टीएनएपीपी जेक व्हार्टन द्वारा प्रबंधित है, थ्री टीन द्वारा नहीं

फिर भी एक और मुद्दा मैंने बहुत समय व्यतीत किया। यदि आप मेवेन सेंट्रल में थ्रीटीन की तलाश करते हैं, तो आप केवल threetenbp लिए पैकेज देखेंगे, threetenabp नहीं। अगर आप तीन टाइनबिप के लिए गिटौब रेपो में जाते हैं , तो आप देखेंगे कि कुख्यात compile 'this-or-that' लाइन को रीडमेम के डाउनलोड अनुभाग के तहत।

जब मैंने पहली बार इस गिटौब रिपो को मारा, मुझे नहीं पता था कि उस संकलन की रेखा का क्या मतलब है, और मैंने इसे अपने टर्मिनल में चलाने की कोशिश की (एक स्पष्ट और उम्मीद के मुताबिक विफलता के साथ)। निराश, मैं इसके बारे में तब तक नहीं लौटा था जब तक मुझे बाकी के बारे में सोचा नहीं था, और आखिरकार यह महसूस हुआ कि यह com.jakewharton.threetenabp रिपो लाइन है जो com.jakewharton.threetenabpcom.jakewharton.threetenabpcom.jakewharton.threetenabp रेपो के लिए इंगित करता है, जैसा कि org.threeten विरोध में है। यही कारण है कि मैंने सोचा था कि तीन टाइनबैप पैकेज मेवेन रेपो में नहीं था

सारांश: इसे काम करना

अब यह सब बहुत आसान लगता है आप अपने [project folder]/app/build.gradle फ़ाइल में compile 'com.jakewharton.threetenabp:threetenabp:1.0.3' सुनिश्चित कर एक एंड्रॉइड प्रोजेक्ट में आधुनिक समय प्रबंधन कार्यों को प्राप्त कर सकते हैं इसके dependencies अनुभाग में पंक्ति:

 apply plugin: 'com.android.application' android { compileSdkVersion 23 buildToolsVersion "23.0.3" defaultConfig { applicationId "me.ahuman.myapp" minSdkVersion 11 targetSdkVersion 23 versionCode 1 versionName "1.0" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } } dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) testCompile 'junit:junit:4.12' compile 'com.android.support:appcompat-v7:23.4.0' compile 'com.android.support:design:23.4.0' compile 'com.jakewharton.threetenabp:threetenabp:1.0.3' }