2013-03-01 10 views
27

मैं अपने एंड्रॉइड प्रोजेक्ट के लिए प्रोजेगार्ड सेट अप करने का प्रयास कर रहा हूं। मेरे एप्लिकेशन प्रोजेक्ट में बहुत कम कोड है, लेकिन एक लाइब्रेरी प्रोजेक्ट का संदर्भ देता है जिसमें कोड का विशाल बहुमत और कोई अन्य बाहरी जार है। ऐसा कहा जा रहा है, मुझे यकीन नहीं है कि इसे ध्यान में रखने के लिए प्रोजेगार्ड कैसे सेट करें। अभी मेरी proguard config फ़ाइल the ProGuard site से केवल एंड्रॉइड उदाहरण है। मैं चारों ओर खोज कर रहा हूं, लेकिन लाइब्रेरी प्रोजेक्ट्स, जार के साथ प्रोगार्ड का उपयोग करने पर बहुत कुछ या कोई दस्तावेज नहीं मिला है। मैं प्रोजेवार्ड के लिए नया हूं, इसलिए सही दिशा में कोई भी धक्का बहुत अच्छा होगा। धन्यवाद।एंड्रॉइड लाइब्रेरी प्रोजेक्ट्स के साथ प्रोगार्ड सेट करना

उत्तर

15

संपादित

@BornToCode बताते हैं के रूप में, एक अलग जवाब (मूल रूप से here पोस्ट) बेहतर बताते हैं कि कैसे पुस्तकालय परियोजनाओं Proguard द्वारा नियंत्रित किया जाता है। इसके अतिरिक्त, इस संदर्भित प्रश्न में मेरी मूल प्रतिक्रिया से जुड़ी तुलना में अधिक रुचि और अधिक समग्र प्रतिष्ठा है। बोली:

लाइब्रेरी द्वारा स्वयं परियोजनाओं ProGuard नहीं चला, तो वे किसी भी विन्यास का उपयोग नहीं करते।

एप्लिकेशन प्रोजेक्ट किसी भी संदर्भित पुस्तकालयों सहित पूरे कोड बेस को खराब कर देता है, इसलिए उन्हें एप्लिकेशन कोड और लाइब्रेरी कोड के लिए उचित कॉन्फ़िगरेशन की आवश्यकता है।


ओल्ड उत्तर(गलत नहीं, बस शायद नहीं सबसे अच्छा तरीका)

पुस्तकालय परियोजनाओं ग्रहण में अपनी जार के लिए एक परियोजना को जोड़ने के लिए एक सुविधाजनक तरीका की अधिक है। जब आप प्रोजेक्ट बनाते हैं, तो लाइब्रेरी प्रोजेक्ट का एकमात्र घटक जो आपके कंपाइलर को दिखाई देता है वह जार फ़ाइल है।

आप उस जार अंधेरा करना इस पोस्ट की जाँच करना चाहते हैं:

How to obfuscate an Android library (.jar file) using Proguard in Eclipse

+0

हाय, ऐसा लगता है इस जवाब [इस] के साथ अलग अलग (है http://stackoverflow.com/questions/10982344/is-proguard-cfg-needed-for-library-projects#10992604)। क्या आप समझाएँगे? – BornToCode

+0

@ बोर्नटोकोड आप बिल्कुल सही हैं। लिंक्ड प्रतिक्रिया स्पष्ट रूप से मेरे उत्तर से अधिक सम्मानित है। मैंने यहां एक लिंक और मेरे उत्तर में एक उद्धरण जोड़ा है। – Phil

4

यह एक पुस्तकालय के लिए ProGuard सेटिंग्स (जो की तरह पुस्तकालय फ़ाइलें समझ से परे नहीं किया जाना चाहिए) निर्दिष्ट करने के लिए मेरे लिए समझ में आता है पुस्तकालय परियोजना में। मैंने पाया है कि मुझे अपने एप्लिकेशन में मेरे लाइब्रेरी मॉड्यूल से प्रोगार्ड कॉन्फ़िगरेशन भी शामिल करने की आवश्यकता है। ऐसा करने के लिए, मैं अपने पुस्तकालय के build.gradle

apply plugin: 'com.android.library' 

android { 
    defaultConfig { 
     consumerProguardFiles 'proguard-rules.pro' 
    } 
} 

में defaultConfig अनुभाग के लिए निम्न जोड़ा और फिर मेरे पुस्तकालय मॉड्यूल में proguard-rules.pro फ़ाइल के लिए कॉन्फ़िगर महत्वपूर्ण धारावाहिक वर्गों के नाम रखने के लिए।

भी देखें consumerProguardFiles gradle reference

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