2012-01-04 8 views
9

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

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

तो। मैं इस काम को कैसे प्राप्त कर सकता हूं इस पर कोई अंतर्दृष्टि?

+0

आप मेरी नई ग्रहण प्लगइन (https://github.com/banshee/AndroidProguardScala) को आजमा सकते हैं। आप निश्चित रूप से Google समूह https://groups.google.com/forum/?fromgroups#!forum/scala-on-android –

उत्तर

6

अधिकांश लोग प्रोगार्ड के साथ एसबीटी का उपयोग करते हैं (जहां तक ​​मुझे पता है कि यह स्वचालित रूप से sbt android plugin के साथ चलाया जाता है)।

इसके अतिरिक्त, ship with two dex files in a apk की संभावना है। यह कई समस्याओं को हल करता है, क्योंकि अधिकांश प्रतिबंध डेक्स फ़ाइलों पर लागू होते हैं, अंतिम एपीके नहीं।

यह पुराना है, लेकिन कई उपयोगी सामान्य जानकारी है: http://lamp.epfl.ch/~michelou/android/

1

मैं AndroidProguardScala का उपयोग के रूप में यहाँ दी:

https://stackoverflow.com/a/11084146/1287856

यह Proguard जब आवेदन के निर्यात का उपयोग करता है, और यह बहुत अच्छी तरह से काम करता है।

+0

पढ़ना चाहते हैं प्लगइन का सीधा लिंक यहां है: https://github.com/banshee/ AndroidProguardScala –

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